比如我们要实现1,2,3的排列组合,我们可以很容易写出来,如下表:
1个元素 | 2个元素 | 3个元素 | ||
不考虑顺序 | 123 | 1,2,3 | 12,13,23 | 123 |
考虑顺序 | 123 | 1,2,3, | 12,21,13,31,23,32 | 123,132,213,231,312,321 |
#选取2个对象
import itertools print list(itertools.combinations([1,2,3,4],3)) [(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
#选取3个对象
import itertools
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]print list(itertools.combinations([1,2,3,4],2))
考虑顺序import itertools print list(itertools.permutations([1,2,3,4],2)) #第二个参数2表示要选几个对象 [(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
总结:主要实例分析了itertools库里combinations函数与permutations函数的区别combinations:不考虑顺序的排列组合
permutations:考虑顺序的排列组合