我需要的是创建两个元素的组合。
如果列表包含:
所有这些都不使用
我使用以下代码进行排列。但是我该如何修改它以使其与组合一起工作?
如果列表包含:
seq = ['A', 'B', 'C']
,则输出为com = [['A', 'B'], ['A', 'C'], ['B', 'C']]
。所有这些都不使用
itertools.combinations
方法。我使用以下代码进行排列。但是我该如何修改它以使其与组合一起工作?
def permute(seq):
if len(seq) <= 1:
perms = [seq]
else:
perms = []
for i in range(len(seq)):
sub = permute(seq[:i]+seq[i+1:])
for p in sub:
perms.append(seq[i:i+1]+p)
return perms
itertools
? - jonrsharpecombinations
的等效源代码在itertools
文档页面上。只需将其复制粘贴到您的文件中即可。 - Kevinitertools.combinations
函数返回的是字典序排序,这对于整数列表可能不太理想 - 例如combinations([1,2,10,3], 3)
会先返回[1,2,10]
而不是[1,2,3]
。 - Oliver