Может мой велосипед вам поможет?
import numpy as np
def IterFlatten(iterable):
u"""итератор по вложенным перечисляемым объектам
>>> [i for i in IterFlatten([1,34.5,2,3,[[],[6,7,{'a':'b','c':'d'}]]])]
[1, 34.5, 2, 3, 6, 7, 'a', 'c']"""
if type(iterable) is np.matrix:
iterable=np.array(iterable)
if hasattr(iterable,"__iter__"):
for seq in iterable:
for e in IterFlatten(seq):
yield e
else:
yield iterable
def Flatten(iterable,level=None):
u"""удаление внутренней структуры у списков
>>> Flatten([1,34.5,2,3,[[],[6,7,{'a':'b','c':'d'}]]])
[1, 34.5, 2, 3, 6, 7, 'a', 'c']"""
return list(IterFlatten(iterable))