使用itertools.combinations,以下效果很好:
for letter_group in itertools.combinations(alphabet, 5):
print letter group
现在我希望组合中5个项目中的前2个不变。有没有办法做到这一点?
例如,输出将是:
(a,b,c,d,e)
(a,b,e,f,g)
...
(a,b,x,y,z)
答案 0 :(得分:3)
嗯,我认为你要做的是制作5元组,其中指定前2个,最后3个来自名为alphabet
的可迭代,但最后3个可以&#39 ; t重用前两个。
这个怎么样:
start = ('a', 'b')
for ending in itertools.combinations(set(alphabet) - set(start), 3):
print start + ending
答案 1 :(得分:0)
只需在没有前两个字母的情况下制作alphabet
,其余部分组合,然后与结果,可运行代码联系['a','b']:
# -*- coding: utf-8 -*-
import string
import itertools
alphabet = string.letters[:26]
prefix = ['a', 'b']
for letter_group in itertools.combinations(alphabet[len(prefix):], 3):
print prefix + list(letter_group)