Achatar uma lista irregular de listas

Sim, eu sei que esse assunto já foi abordado antes (aqui, aqui, aqui, aqui), mas até onde eu sei, todas as soluções, exceto uma, falham em uma lista como esta:

L = [[[1, 2, 3], [4, 5]], 6]

Onde a saída desejada é

[1, 2, 3, 4, 5, 6]

Ou talvez ainda melhor, um iterador. A única solução que vi que funciona para um aninhamento arbitrário é encontradanesta pergunta:

def flatten(x):
    result = []
    for el in x:
        if hasattr(el, "__iter__") and not isinstance(el, basestring):
            result.extend(flatten(el))
        else:
            result.append(el)
    return result

flatten(L)

Este é o melhor modelo? Eu esqueci alguma coisa? Quaisquer problemas?

questionAnswers(30)

yourAnswerToTheQuestion