Use itertools.product instead.
>>> import itertools >>> [''.join(i) for i in itertools.product('01', repeat=4)] ['0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111']
Using the function (if itertools already imported):
def bitGen(n): return [''.join(i) for i in itertools.product('01', repeat=n)]
For larger n may be more appropriate to return the generator.
def bitGen(n): return (''.join(i) for i in itertools.product('01', repeat=n)) # Alternatively: def bitGen(n): for i in itertools.product('01', repeat=n): yield ''.join(i)
source share