全排列问题
回溯解决全排列问题
[1,2,3];穷举,全排列问题
每次选择一个数子,利用selected记录已选择的
首先通过循环去遍历每个可能的选择,选择一个数字后,记录选择,递归进行下一次选择
#nums:给定的数组,selected:记录已选择数组,res:记录所有的组合
def all_select(nums,selected,res):
if len(selected) == len(nums):
# 如果直接添加selected则res会随着selected的更改而更改
one_re = list(selected)
return res.append(one_re)
for i in nums:
if i not in selected:
selected.append(i)
all_select(nums,selected,res)
#回溯过程中更新selected
selected.pop()
nums = [1