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