d = [[1],[2],[[3,4,5]],[[[[5,7,8],[9,10]]]],[[11,12,23]]]
flattened = []
while True:
try:
temp = functools.reduce(lambda x, y:[*x,*y], d)
except:
break
flattened.extend(list(filter(lambda x: type(x)!=list, temp)))
d = (filter(lambda x: type(x)==list, temp))