用python实现排列组合

比如我们要实现1,2,3的排列组合,我们可以很容易写出来,如下表:

  1个元素2个元素3个元素
不考虑顺序1231,2,312,13,23123
考虑顺序1231,2,3,12,21,13,31,23,32123,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

print list(itertools.combinations([1,2,3,4],2))

[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]


考虑顺序

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:考虑顺序的排列组合

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值