def list_expand(d, prefix=None):
    """
    Recursively expand dictionaries into lists
    e.g. list_expand({1:{2:[3,4]}, 5:[6]}) == [(1,2,3), (1,2,4), (5,6)]
    """
    if prefix is None:
        prefix = tuple()
    for k in d:
        if isinstance(d, dict):
            for i in list_expand(d[k], prefix=tuple(chain(prefix, (k,)))):
                yield i
        else:
            yield tuple(chain(prefix, make_list(k)))
def list_expand ( d , prefix = None ) : if prefix is None : prefix = tuple ( ) for k in d : if isinstance ( d , dict ) : for i in list_expand ( d [ k ] , prefix = tuple ( chain ( prefix , ( k , ) ) ) ) : yield i else : yield tuple ( chain ( prefix , make_list ( k ) ) )
Recursively expand dictionaries into lists
    e.g. list_expand({1:{2:[3,4]}, 5:[6]}) == [(1,2,3), (1,2,4), (5,6)]