城西人 發表於 2026-3-13 11:12:00

python 列表元素全排列

<blockquote>
<p>题目描述</p>
</blockquote>
<ul>
<li>给定一个列表,对列表元素进行全排列,使得生成一个包含列表的列表,且全排列不能重复,例子:<br>
输入:nums = <br>
输出:[,,,,,]</li>
</ul>
<blockquote>
<p>实现方式</p>
</blockquote>
<ul>
<li>
<p>使用python 自带的itertools.permutations函数,专门用于生成排列,非常方便。但注意的是permutations 的返回值是元组,不是列表</p>
<details>
<summary>点击查看代码</summary>
<pre><code>num =

from itertools import permutations

all_permutations = list(list(i) for i in set(permutations(num)))
print(all_permutations)
</code></pre>
</details>
</li>
<li>
<p>自己写代码实现,使用递归,每次将列表中一个元素提取出来,然后让其他元素全排列,得到全排列的组合后,再将第一个元素插入到全排列的列表中的各个位置,就得到了想要的结果</p>
<details>
<summary>点击查看代码</summary>
<pre><code>num =

def fullnum(nums):
        if len(nums) == 0:
                return None
        elif len(nums) == 1:
                return
        res = []
        left = nums
        right = fullnum(nums)
        for i in right:
                for j in range(len(i)+1):
                        result = i[:j] + + i
                        if result not in res:
                                res.append(result)
        return res
print(fullnum(num))
</code></pre>
</details></li>
</ul><br><br>
来源:https://www.cnblogs.com/yzysimpletest/p/19712546
頁: [1]
查看完整版本: python 列表元素全排列