【发布时间】:2020-12-10 14:06:19
【问题描述】:
我需要找到给定元素的所有可能排列和组合,而不需要重复相同的对。
例如
list = [a,b,c]
想要的输出是
[(a),(b),(c),(a,b),(a,c),(b,a),(b,c),(c,a),(c,b),(a,b,c),(a,c,b),(b,a,c),(b,c,a),(c,a,b),(c,b,a)]
我尝试在 python 中使用itertools 来获得相同的输出对,但失败了。
使用itertools.permutations 输出是
[abc,acb,bac,bca,cab,cba]
使用itertools.combinations 输出是
[(), ('a',), ('b',), ('c',), ('a', 'b'), ('a', 'c'), ('b', 'c'), ('a', 'b', 'c')]
错过了像(b,a)这样的配对
.
使用itertools.combinations_with_replacement 在对中给出重复元素,例如(a,a,a),(b,b,b),这是不可接受的。
所需的输出不应包含重复的对元素。
【问题讨论】:
标签: python algorithm combinations permutation itertools