def generate_strings(start, stop, alphabet="0123456789"): for digit in start: for x in product(*( [alphabet[alphabet.index(digit):]] + [alphabet] * (slen -1) )): s = ''.join(x) print s, stop if s == stop: return generate_strings("100", "341")