python简单程序,不用内置函数,给定一个没有重复数字的序列,返回其所有可能的全排列。示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]
时间: 2023-09-24 20:02:23 浏览: 82
排列程序 给出一个序列(无重复元素),输出其全部排列
4星 · 用户满意度95%
好的,可以使用递归实现全排列:
```python
def permute(nums):
if len(nums) == 1:
return [nums]
res = []
for i in range(len(nums)):
# 固定第i个元素,递归求解剩余元素的全排列
rest = nums[:i] + nums[i+1:]
rest_permute = permute(rest)
# 将第i个元素与剩余元素的全排列拼接起来
for p in rest_permute:
res.append([nums[i]] + p)
return res
```
使用方法:
```python
nums = [1, 2, 3]
result = permute(nums)
print(result)
```
输出:
```
[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]
```
阅读全文