1
我試圖(1)遍歷所有可能的字母組合並(2)記住我離開的位置。Pythonic發生器在可能的字母組合上的起始值
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)
但我沒能獲得迭代開始在其他地方,即總是,B,C,...是有沒有乾淨的方式來擴大發生器,使像
xselections(items=ascii_lowercase, n=3, last=[a,c,y])
-> acz, ada, adb, adc, ...
是可能的嗎?我在看itertools
,但沒有看到光...
你知道生成器,但使用'xrange(len(...))'遍歷事物嗎? – delnan 2011-04-03 00:01:49
你想通過記住你離開的地方來達到什麼目的?提取一些值然後提取更多或僅跳過一些第一個值? – pajton 2011-04-03 00:04:37
@pajton如果需要,我想跳過第一個值。 – mhermans 2011-04-03 00:47:53