第一种
itertools.permutations() ,它接受一个集合并产生一个元组序列,每个元组由集合中所有元素的一个可能排列组成。也就是说通过打乱集合中元素排列顺序生成一个元组
items = ['a', 'b', 'c']
from itertools import permutations
for p in permutations(items):
print(p)
# 指定序列的长度
# for p in permutations(items, 2):
# print(p)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
结果:
('a', 'b', 'c')
('a', 'c', 'b')
('b', 'a', 'c')
('b', 'c', 'a')
('c', 'a', 'b')
('c', 'b', 'a')
- 1
- 2
- 3
- 4
- 5
- 6
第二种
使用 itertools.combinations() 可得到输入集合中元素的所有的组合。
from itertools import combinations
items = ['a', 'b', 'c']
for c in combinations(items,2):
print(c)
#for c in combinations(items, 3):
# print(c)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
结果
('a', 'b')
('a', 'c')
('b', 'c')
- 1
- 2
- 3
第三种
函 数 itertools.combinations_with_replacement() 允许同一个元素被选择多次
items = ['a', 'b', 'c']
from itertools import combinations_with_replacement
for a in combinations_with_replacement(items, 3):
print(a)
- 1
- 2
- 3
- 4
- 5
- 6
结果:
('a', 'a', 'a')
('a', 'a', 'b')
('a', 'a', 'c')
('a', 'b', 'b')
('a', 'b', 'c')
('a', 'c', 'c')
('b', 'b', 'b')
('b', 'b', 'c')
('b', 'c', 'c')
('c', 'c', 'c')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10