Я пытаюсь (1) перебрать все возможные комбинации букв и (2) запомнить, где я остался.
E.g. a,b, c, d, ... z, aa, ab, ac, ad, ..., zz, aaa, ...
Первая часть работает, используя следующий код:
def xselections(items, n):
if n==0: yield []
else:
for i in xrange(len(items)):
for ss in xselections(items, n-1):
yield [items[i]]+ss
for i in [1, 2, 3]:
for combo in xselections(ascii_lowercase, i):
print ''.join(combo)
Но я не могу запустить итерацию где-то еще, т.е. всегда a, b, c, ... Есть ли чистый способ расширить генератор так, чтобы что-то вроде
xselections(items=ascii_lowercase, n=3, last=[a,c,y])
-> acz, ada, adb, adc, ...
возможно?Я смотрю на itertools
, но не вижу света ...