def flatten(l):
for el in l:
if not el or not isinstance(el[0], list):
yield el
else:
yield from flatten(el)
def nested_to_listoflist(l):
return [el for el in flatten(l)]
# or return list(flatten(l))
nested_list = [[[1, 2, 3], [[5, 6, 7], [8, 9, 10, 11, 23]]], [4], [[12, 13, 14], [[15, 16], [[17, 18], [19, 20]]]], [21, 22, 25, 26]]
unnested_list = nested_to_listoflist(nested_list)
print(unnested_list)
ZGVmIGZsYXR0ZW4obCk6CiAgICBmb3IgZWwgaW4gbDoKICAgICAgICBpZiBub3QgZWwgb3Igbm90IGlzaW5zdGFuY2UoZWxbMF0sIGxpc3QpOgogICAgICAgICAgICB5aWVsZCBlbAogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHlpZWxkIGZyb20gZmxhdHRlbihlbCkKCmRlZiBuZXN0ZWRfdG9fbGlzdG9mbGlzdChsKToKICAgIHJldHVybiBbZWwgZm9yIGVsIGluIGZsYXR0ZW4obCldCiAgICAjIG9yIHJldHVybiBsaXN0KGZsYXR0ZW4obCkpCgoKbmVzdGVkX2xpc3QgPSBbW1sxLCAyLCAzXSwgW1s1LCA2LCA3XSwgWzgsIDksIDEwLCAxMSwgMjNdXV0sIFs0XSwgW1sxMiwgMTMsIDE0XSwgW1sxNSwgMTZdLCBbWzE3LCAxOF0sIFsxOSwgMjBdXV1dLCBbMjEsIDIyLCAyNSwgMjZdXQp1bm5lc3RlZF9saXN0ID0gbmVzdGVkX3RvX2xpc3RvZmxpc3QobmVzdGVkX2xpc3QpCnByaW50KHVubmVzdGVkX2xpc3Qp
[[1, 2, 3], [5, 6, 7], [8, 9, 10, 11, 23], [4], [12, 13, 14], [15, 16], [17, 18], [19, 20], [21, 22, 25, 26]]