uteums)
result = []ums)
def backtrack(path, used)ums)d(path[])geums))ot used[i]
used[i] = Truedums[i])
backtrack(path, used)
path.pop()
used[i] = False
backtrack([], used) result
ums为待排列的数组,result为存储结果的列表,used用于记录元素是否被使用过,backtrack为递归函数。在递归函数中,首先判断当前路径是否已经包含了所有元素,如果是,则将当前路径加入结果列表中;否则,遍历数组中未被使用的元素,将其加入路径中,继续递归下去,待递归完成后,将路径中一个元素弹出,并将该元素的使用状态设为False。
使用以上代码,可以得到[1,3]的全排列
ums = [1,3]tuteums))
输出结果为
[[1, 3], [1, 3, 2], [ 1, 3], [ 3, 1], [3, 1, 2], [3, 1]]
实现的详细介绍。