全排列为什么这个输出结果是空?

Leetcode 46.全排列为什么这个输出结果是空?

46.全排列

  • 代码如下:
class Solution:
    def __init__(self) -> None:
        self.res = []

    def permute(self, nums):
        track = []
        self.backtrack(nums, track)
        return self.res

    def backtrack(self, nums, track):
        if len(track) == len(nums):
            self.res.append(track)
            # 测试输出
            print(self.res) 
            return
        for num in nums:
            if num in track:
                continue
            track.append(num)
            self.backtrack(nums, track)
            track.remove(num)

实际输出:

img

期望输出:

img

之前的写法是把backtrack放到permute方法中,可以正确输出,但是方法套方法不够优雅,这种写法明明啥也没改,为啥结果就不对了呢?

代码好好粘,缩进全没了鬼能猜到你这逻辑到底怎么写的