一、框架
if 满足基线条件:
ans.append(track)
返回
for i in 选择列表:
做选择(track.append(...))
进入下一层决策
撤销选择 (track.pop())
选择列表可以为bool型,表示是否被用了
二、排列、组合、子集
1、排列:for 循环的 每次从0开始
2、子集、组合:for循环每次从 i+1 开始
三、选择列表有重复时
先排序
if nums[i] == nums[i-1] and used[i-1] == false:
continue