列表中 Python 中的无序对(对集)

Unordered Pairs (pair sets) in Python from a list

我有一个项目列表

 alist = ['dog', 'cat', 'fish']

我想要 return 所有唯一的无序对,所以在这种情况下:

 (dog,cat)(dog,fish)(fish,cat)

itertools.combinations没有考虑到无序的情况,所以不是我需要的

您使用 itertools 的问题在哪里?

import itertools

alist = ['dog', 'cat', 'fish']
for result in itertools.combinations(alist, 2):
    print result

输出:

('dog', 'cat')
('dog', 'fish')
('cat', 'fish')