Acoplar una lista irregular de listas

Sí, sé que este tema ha sido cubierto antes (aquí, aquí, aquí, aquí), pero que yo sepa, todas las soluciones, excepto una, fallan en una lista como esta:

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

Donde la salida deseada es

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

O tal vez incluso mejor, un iterador. La única solución que vi que funciona para un anidamiento arbitrario se encuentraen esta pregunta:

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)

¿Es este el mejor modelo? ¿Pasé por alto algo? Cualquier problema?

Respuestas a la pregunta(30)

Su respuesta a la pregunta