Создание возможных вариантов списка способом рекурсии в python
Не могу решить задание. Необходимо вывести все возможные комбинации списка рекурсией. Если вырезаю часть кода из функции def get_combinations(), все работает, но в коде ниже нет.
class CombinationsList:
@staticmethod
def get_combinations(my_list):
"""
:param self:
:param my_list: list
:return: list[list]
"""
# YOUR CODE HERE
if len(my_list) == 0:
return [[]]
cs = []
for c in get_combinations(my_list[1:]):
cs += [c, c+[my_list[0]]]
return cs
print('Combinations:', CombinationsList().get_combinations([1, 2, 'a']))
Ответы (1 шт):
Автор решения: GrAnd
→ Ссылка
Когда зовёте статический метод класса указывайте его полное название.
for c in CombinationsList.get_combinations(my_list[1:]):
Или используйте @classmethod вместо @staticmethod, тогда имя класса автоматически будет передано в качестве первого аргумента.
@classmethod
def get_combinations(cls, my_list):
...
for c in cls.get_combinations(my_list[1:]):
И в обоих случаях создавать экземпляр класса не обязательно. Можно вызывать без () - CombinationsList.get_combinations([1, 2, 'a']).