Создание возможных вариантов списка способом рекурсии в 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']).

→ Ссылка