Если исходный список многоуровневый, то дело решит обычная рекурсия x = [1,2,[3,4,[5,6],7],8]
n = []
for i in x:
def f(i):
global n
if not isinstance(i, list):
n +=
else:
for y in i:
if not isinstance(y, list):
n += [y]
else:
f
f(i)
print Вуаля, было
[1,2,[3,4,[5,6],7],8]
Стало
[1, 2, 3, 4, 5, 6, 7, 8]