Python实现数学全排列itertools.permutations

通俗地讲,就是返回可迭代对象的所有数学全排列方式。

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)

参考文献:

  1. Python中itertools模块用法详解 - 脚本之家;
  2. itertools.permutations - Python标准库。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值