As pointed out in comments, most if not all the answers to this related question fail for lists like:
ls = [1,2,[3,4]]
Moreover, the list could be more deeply nested. How to partially flatten up to a user given level (to infinity by default)
ls2 = [1,[2,3],[4,[5,6]]]
Desired output for ls2
:
flatten to level 1:
[1,2,3,4,[5,6]]
flatten to level 2 (or higher)
[1,2,3,4,5,6]