通俗地讲,就是返回可迭代对象的所有数学全排列方式。
from itertools import permutations
permutations([‘a’, ‘b’, ‘c’])
<itertools.permutations object at 0x7ff7b1411890>
for item in permutations([‘a’, ‘b’, ‘c’]):
… print item
…
(‘a’, ‘b’, ‘c’)
(‘a’, ‘c’, ‘b’)
(‘b’, ‘a’, ‘c’)
(‘b’, ‘c’, ‘a’)
(‘c’, ‘a’, ‘b’)
(‘c’, ‘b’, ‘a’)
for i in itertools.permutations(‘123’, 2):
… print i
…
(‘1’, ‘2’)
(‘1’, ‘3’)
(‘2’, ‘1’)
(‘2’, ‘3’)
(‘3’, ‘1’)
(‘3’, ‘2’)
itertools.permutations(‘123’, 2)
<itertools.permutations object at 0x7f5addcca8f0>
举例:要找出1、2、3、4个数字任意3个数字组合的所有数,以及个数。
import itertools
sum2 = 0
a = [1, 2, 3, 4]
for i in itertools.permutations(a, 3):
print(i)
sum2 += 1
print(sum2)
参考文献:
- Python中itertools模块用法详解 - 脚本之家;
- itertools.permutations - Python标准库。