在Python 2.7中,我想获得列表元素的self-cartesian product,但没有元素与自身配对。
[x for x in itertools.product(foo, repeat=2) if x[0] != x[1]]
目前我这样做:
itertools.combinations
但我怀疑这是一种内置的方法。它是什么?
注意:('a', 'b')
wouldn't give me ('b', 'a')
和i=0
答案 0 :(得分:8)
您正在寻找permutations而不是组合。
from itertools import permutations
foo = ['a', 'b', 'c']
print(list(permutations(foo, 2)))
# Out: [('a', 'b'), ('a', 'c'), ('b', 'a'), ('b', 'c'), ('c', 'a'), ('c', 'b')]