Pythonic way to flatten lists or arbitrary depth using assignment expressions
Welcome to Code Review.

Follow the PEP8 guide for naming conventions. Functions and variables would be snake_case.

When checking for empty list, you don't need to find the length. Empty lists/strings/sets are all falsy values in python.

Use better/fuller names. hd/tl -&gt; head/tail.

There are a few inbuilt utilities in python, which might help you:

itertools.chain
itertools.chain.from_iterable
functools.reduce