Ich versuche, das Stringpermutationsproblem zu codieren. Anstelle von String habe ich eine Liste von ganzen Zahlen wie [1,2,3]. Ich muss alle möglichen Permutationen der Liste ausdrucken. Es gibt jedoch ein Problem mit meinem Code, das ich nicht herausfinden kann. Irgendwie trifft die Zeile if not in words
im Base Case nur einmal. Ich versuche das aus der letzten Stunde herauszufinden. Jede Hilfe wäre willkommen! TIA Hier ist der CodeNicht nachvollziehbar, warum Stringpermutationen in einer globalen Variablen für Arraypermutationen nicht angehängt werden.
words = list()
def permute(nums):
if len(nums) == 0:
return None
l = 0
r = len(nums)
permute_helper(nums,0,r)
def permute_helper(nums,start,end):
current = 0
if start == end-1:
if not nums in words:
print 'appended'
words.append(nums)
else:
for current in range(start,end):
temp = nums[start]
nums[start] = nums[current]
nums[current] = temp
#Recursive call
permute_helper(nums,start+1,end)
temp = nums[start]
nums[start] = nums[current]
nums[current] = temp
permute([1,2,3])
print words
Verwenden Sie itertools ... –
Danke. Ich werde es aktualisieren –
Viel besser. Vielen Dank. :-) –