全排列函数dfs
时间: 2023-10-13 15:06:15 浏览: 59
全排列(dfs)1
好的,这是一个简单的递归实现的全排列函数dfs,可以参考:
```python
def dfs(nums, path, res):
if not nums:
res.append(path)
return
for i in range(len(nums)):
dfs(nums[:i] + nums[i+1:], path + [nums[i]], res)
nums = [1, 2, 3]
res = []
dfs(nums, [], res)
print(res) # [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]
```
其中,`nums` 是待排列的列表,`path` 是当前路径,`res` 是存放所有排列结果的列表。在每次递归时,我们将当前元素加入路径 `path` 中,并从 `nums` 中去掉该元素进行下一层递归,直到 `nums` 为空,将当前路径 `path` 加入到结果列表 `res` 中。
阅读全文