Surprisingly python doesn’t have a shortcut for flatten a list (more generally a list of lists of lists of…).
I made a simple implementation that doesn’t use recursion and tries to be written clearly.
I get a element from a “notflat” list (a list that can have another lists on it). If a element is not a list we store in our flat list. If the element is still a list we deal with him later. The flat list always have only elements that are not a list.
To preserve the original order we reverse the elements at the end.