В моей попытке у меня есть список: «вещи», которые должны рекурсивно перебираться, чтобы найти все возможные комбинации.Он делает это, пытаясь выполнить рекурсию для всех элементов, кроме первого, пытаясь выполнить рекурсию для всех элементов, кроме индекса [1] (ролловер), и, наконец, перебирать все элементы, кроме индекса [2] (ollie).
stuff = ['1','2','3','4','5']
def rollOver(aL):
neuList = []
neuList.append(aL[0])
neuList.extend(aL[2:])
return neuList
def ollie(aL):
neuList = []
neuList.extend(aL[0:1])
neuList.extend(aL[3:])
return neuList
def recurse(info):
try:
if len(info) == 3:
print(info)
if len(info) > 1:
recurse(info[1:])
recurse(rollOver(info))
recurse(ollie(info))
except:
l = 0
recurse(stuff)
Я вручную попробовал этот метод на бумаге, и он, похоже, сработал.Тем не менее, в коде я получаю результаты:
['3', '4', '5']
['2', '4', '5']
['3', '4', '5']
['1', '4', '5']
['1', '4', '5']
1, 3, 5 должна быть перечисленной возможностью, но она не появляется, что заставляет меня думать, что я сделал что-то не так.