Python combinations 函数
Python 常见函数 combinations 详解
✅ 一、概述
Python 中的 combinations
是 itertools
模块下的一个函数,用于生成序列中所有不重复的 r 个元素的组合(不同于排列 permutation,不考虑顺序)。
模块位置:
from itertools import combinations
特点:无重复、无顺序
🧠 二、基本语法
1 |
|
iterable
:可迭代对象,如字符串、列表、元组。r
:每组组合中元素的数量。
返回一个迭代器对象(itertools.combinations
),其中包含所有的 r 长度组合。
🧪 三、基础用法示例
🎯 示例 1:生成列表的所有 2 元组合
1 |
|
🔍 解释:
- 原始列表:
['A', 'B', 'C']
- 所有可能的 2 个元素组合(不考虑顺序):3 种。
- 输出的是元组组成的列表。
💼 四、企业实战案例
📌 场景 1:多服务器组合测试(运维/测试场景)
企业中有多台服务器,为了测试高可用搭配,需遍历所有 2 台服务器的组合:
1 |
|
✅ 结果输出:
1 |
|
📌 场景 2:商品搭配推荐系统(电商/算法场景)
在商品推荐中,经常需要生成组合搭配(如套餐)。
1 |
|
✅ 输出:
1 |
|
🔁 五、与 permutations
的区别
函数名 | 是否有顺序 | 是否允许重复元素 | 示例 |
---|---|---|---|
combinations | ❌ 无顺序 | ❌ 不重复 | AB 与 BA 视为同一组 |
permutations | ✅ 有顺序 | ❌ 不重复 | AB 与 BA 为不同组合 |
📎 六、组合数计算公式(C(n, r))
组合总数计算公式为:

🛠 七、实际业务进阶技巧
✅ 1. 动态组合数据(生成所有组合)
1 |
|
✅ 2. 数据去重后组合(推荐前先去重)
1 |
|
⚠️ 八、注意事项
- 返回的是一个迭代器,需要
list()
转换。 - 数据中元素不可重复,否则影响结果。
- 不同于
permutations
,combinations
顺序不影响组合。 - 大量组合时建议使用生成器,避免内存消耗。
✅ 九、小练习题
题目:有 5 名员工,需从中任选 3 人组建小组,打印所有可能组合。
1 |
|
📚 十、总结
特性 | 描述 |
---|---|
类型 | itertools.combinations |
输入 | iterable,可迭代对象 |
输出 | 所有长度为 r 的组合 |
是否有顺序 | ❌ 无顺序 |
是否有重复组合 | ❌ 无 |
使用场景 | 商品推荐、测试组合、统计分析、AI特征组合 |
Python combinations 函数
https://dreamshao.github.io/2025/07/23/python常见函数之combinations/