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

如何在Python中生成无重复的列表全排列集合

生成列表全排列的最优方案

你要的这种无重复、长度与原列表一致的有序组合,本质就是全排列,Python标准库的itertools里专门有permutations()函数实现这个功能,完全匹配你的需求:

示例代码

import itertools

original_list = [1, 2, 3]
# 生成所有全排列,返回的是元组迭代器
for permutation in itertools.permutations(original_list):
    print(permutation)

运行这段代码会输出你需要的所有结果:
(1, 2, 3)、(1, 3, 2)、(2, 1, 3)、(2, 3, 1)、(3, 1, 2)、(3, 2, 1)

关于扩展性问题

itertools.permutations()是基于C实现的底层逻辑,性能远优于纯Python手写的排列算法,也比你用itertools其他组件拼接的方案高效得多。需要注意的是,全排列的数量是n!(n为列表长度),当n过大时,这个数量会指数级增长,超出内存和计算能力是排列问题的固有特性,但permutations()已经是Python标准库中最优化的实现方案了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:40:25