В python при использовании
for a in b:
'a' на самом деле не число, которое можно использовать в качестве индекса, а вместо этого указатель на фактический элемент в списке 'b'.Другими словами, если бы у меня был следующий список
b = ["Bob", "Jim", "Jane"]
Тогда на первой итерации «а» будет равно «Боб», а не 0.
Когда вы хотите сгенерироватьиндексные номера вместо указателей на элементы можно использовать:
for a in range(0, len(b)):
вместо.Используя это, ваш код должен работать.
Например,
for element in range(0, len(l)):
listSmaller = l[:element] + l[element+1:]
for perm in permutations(listSmaller, k-1):
result.append([perm] + element)
return result