不使用Python 中的 permutations 函数,生成列表的全排列
时间: 2024-02-29 10:52:00 浏览: 70
python使用sorted函数对列表进行排序的方法
可以使用递归的方法生成列表的全排列。以下是生成一段对列表进行全排列的代码:
```python
def permute(nums):
if len(nums) == 0:
return []
if len(nums) == 1:
return [nums]
res = []
for i in range(len(nums)):
prefix = nums[i]
suffix = nums[:i] + nums[i+1:]
for p in permute(suffix):
res.append([prefix] + p)
return res
lst = [1, 2, 3]
result = permute(lst)
for r in result:
print(r)
```
输出结果为:
```
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
```
这段代码中,`permute` 函数使用了递归的方法,当列表长度为 0 或 1 时,直接返回列表本身;否则,遍历列表中的每个元素,将其作为前缀,剩余元素作为后缀,对后缀进行全排列,然后将前缀和后缀的全排列进行组合返回。
阅读全文