具體實現如下
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]]
實現的詳細介紹。