You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python生成20个产品中4个的无序唯一组合?

用Python生成无重复的4元素产品组合(顺序无关)

你需要的是不考虑顺序、元素不重复的组合,Python标准库里的itertools.combinations正好能直接搞定这个需求,不用自己写复杂逻辑,非常适合初学者。

具体代码示例

# 导入Python自带的标准库
import itertools

# 替换成你实际的20个产品列表
products = ["产品A", "产品B", "产品C", "产品D", "产品E",
            "产品F", "产品G", "产品H", "产品I", "产品J",
            "产品K", "产品L", "产品M", "产品N", "产品O",
            "产品P", "产品Q", "产品R", "产品S", "产品T"]

# 生成所有4个产品的无序组合
product_combinations = itertools.combinations(products, 4)

# 转成列表方便查看或后续使用(如果只是遍历处理,可不转,更省内存)
combinations_list = list(product_combinations)

# 验证组合数量,和你计算的4845一致
print(len(combinations_list))  # 输出:4845

关键说明

  • itertools.combinations(iterable, r):这个函数专门生成从目标序列中选r个元素的无序唯一组合,完全符合你的需求——不会出现元素相同但顺序不同的重复项(比如(a,b,c,d)和(b,a,c,d)只会生成一次)。
  • 它返回的是迭代器,如果你不需要一次性保存所有组合,直接循环遍历product_combinations处理每个组合即可,不用转成列表,能节省内存。

小范围测试示例

如果想先验证逻辑,用短列表测试:

test_products = ["产品1", "产品2", "产品3", "产品4"]
test_combinations = list(itertools.combinations(test_products, 2))
print(test_combinations)
# 输出:[('产品1', '产品2'), ('产品1', '产品3'), ('产品1', '产品4'), ('产品2', '产品3'), ('产品2', '产品4'), ('产品3', '产品4')]

内容的提问来源于stack exchange,提问作者Ned

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 07:35:23