Рекурсивное выравнивание списка [дубликат]

Возможный дубликат:

Свести (нерегулярный) список списков в Python

У меня возникли проблемы с использованием Python для рекурсивного выравнивания списка. Я видел несколько методов, которые требуют понимания списка, и различные методы, требующие импорта, однако я ищу очень простой метод для рекурсивного сглаживания списка различной глубины, который также не использует циклы for. У меня была серия испытаний, однако есть два, которые я не могу пройти

flatten([[[[]]], [], [[]], [[], []]]) # empty multidimensional list
flatten([[1], [2, 3], [4, [5, [6, [7, [8]]]]]]) # multiple nested list

Мой код

def flatten(test_list):
    #define base case to exit recursive method
    if len(test_list) == 0:
       return []
    elif isinstance(test_list,list) and type(test_list[0]) in [int,str]:
        return [test_list[0]] + flatten(test_list[1:])
    elif isinstance(test_list,list) and isinstance(test_list[0],list):
        return test_list[0] + flatten(test_list[1:])
    else:
        return flatten(test_list[1:])

Буду признателен за несколько советов.

Ответы на вопрос(4)

Ваш ответ на вопрос