用python实现排列组合

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

  1个元素2个元素3个元素
不考虑顺序1231,2,312,13,23123
考虑顺序1231,2,312,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:考虑顺序的排列组合


 



 

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值