排列组合(python combinations函数)

本文介绍了Python的itertools库中combinations()函数的使用,它用于获取输入集合中元素的所有不重复组合。重点讲解了combinations()的特点,例如元素顺序不重要,以及如何根据下标进行组合。通过示例展示了当n分别为1、2、3时的组合数量,并提供了相关代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

排列组合

使用 itertools.combinations() 可得到输入集合中元素的所有的组合。
对于 combinations() 来讲,元素的顺序已经不重要了。 也就是说,组合 (‘a’, ‘b’) 跟 (‘b’, ‘a’) 其实是一样的(最终只会输出其中一个)。
combinations() 是根据下标来排列组合的, 对于通过一个值但是下标不同,是不会去重的 比如 (‘a’, ‘a’, ‘b’),尽管值相同但是还是会输出 (‘a’, ‘a’)

例:

 当  n = 1 的时候 有1种组合  [1]
 当  n = 2 的时候 有3种组合  [1] [2] [1, 2]
 当  n = 3 的时候 有7种组合  [1] [2] [3] [1, 2] [1, 3] [1, 2, 3] [2, 3]

代码

from itertools import combinations

a = 0
n = 3
alist = []
for item in range(1, n+1):
    res = list(combinations(range(1, n+1), item))
    a += len(res)
    alist.extend(res)

print(a)
print(alist)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值