我有一个类似下面的列表,我想找到经过一点点修改的简单排列,
例如
l=['a', 'b']
输出:
[('a', 'a'), ('a', 'b'), ('b', 'b')]
我关注了
Try-1
list(itertools.product(L, repeat=2))
返回
[('a', 'a'), ('a', 'b'), ('b', 'a'), ('b', 'b')]
尝试-2
print list(itertools.permutations(['a', 'b']))
返回
[('a', 'b'), ('b', 'a')]
Try-3
我可以像下面这样
temp= [tuple(sorted((i,j))) for i in ['a', 'b'] for j in ['a', 'b']]
print list(set(temp))
但是解决这个问题似乎无效。
答案 0 :(得分:5)
使用combinations_with_replacement:
from itertools import combinations_with_replacement
l=['a', 'b']
for c in combinations_with_replacement(l, 2):
print(c)
输出
('a', 'a')
('a', 'b')
('b', 'b')