Question: I would like to know how to do an equivalent of the range function in python, but with the ability to specify the base number. For example:

```
countUp(start=0, end=1010, base=2)
countUp(start=0, end=101, base=3)
countUp(start=0, end=22, base=4)

```

Example output for base 2 counting:

```
[0, 1, 10, 11, 100, ...]

```

Is there a function I'm missing that does this? Or what could I do instead?

Answer: 
You are apparently confusing numbers with the representation of numbers.

A number does not have a base... it's the number **representation** that has a base... for example the number represented as "101" in base 2 is the same as the number represented with "5" in base 10.

The `range` function will count successive numbers, and you can get their representation in any base you like with something like:

```
digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"

def int2str(x, base):
    if x < 0:
        return "-" + int2str(-x, base)
    return ("" if x < base else int2str(x//base, base)) + digits[x % base]

```
You can not crate integers with special based, but you can create your expected numbers in a specified base in string :

```
def my_range(start,end,base,step=1):

    def Convert(n,base):
       string = "0123456789ABCDEF"
       if n < base:
          return string[n]
       else:
          return Convert(n//base,base) + string[n%base]
    return (Convert(i,base) for i in range(start,end,step))

```

Demo:

```
print list(my_range(4,20,2))
['100', '101', '110', '111', '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111', '10000', '10001', '10010', '10011']

```

Note that the passed string `string = "0123456789ABCDEF"` to function will works till base `16`, if want to calculate greater based you can use more letters.