Я пытаюсь решить эту проблему нахождения перестановки заданного списка, используя код ниже.Но список final
продолжает добавлять одно и то же снова и снова.Он должен вернуть [[1,2,3],[2,1,3],[2,3,1],[1,3,2],[3,1,2],[3,2,1]]
, но вместо этого он возвращает [[1,2,3],[1,2,3], [1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3],[1,2,3]]
.Я пытался исправить это некоторое время и буду очень признателен за вашу помощь.
class Solution(object):
def permute(self, nums):
"""
:type nums: List[int]
:rtype: List[List[int]]
"""
self.final = []
l = 0
r = len(nums) -1
self.permutation(nums, l, r)
return self.final
def permutation(self, nums, l, r):
if l == r:
self.final.append(nums)
# print(nums)
print(self.final)
else:
for i in range(r+1):
nums[l], nums[i] = nums[i], nums[l]
self.permutation(nums, l+1, r)
nums[l], nums[i] = nums[i], nums[l]
A = Solution()
A.permute(['1','2','3'])