Python:创建N的组合,其中2个项目是常量

时间:2015-07-18 23:12:25

标签: python

使用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)

2 个答案:

答案 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)