Combining two sorted lists I'm just hoping if there's a way to simplify this recursive code that takes 2 sorted lists and combines the two together in a sorted manner (without actually having to re-sort them).

def merge (l1,l2):
    if len(l1) == 0 and len(l2) == 0:
        return []
    if len(l1) == 0:
        return l2
    if len(l2) == 0:
        return l1
    if l1[0] &lt;= l2[0]:
        return [l1[0]] + merge(l1[1:], l2)
    if l2[0] &lt;= l1[0]:
        return [l2[0]] + merge(l1, l2[1:])
Use the built-in heapq.merge:

heapq.merge(*iterables)
Merge multiple sorted inputs into a single sorted output (for example, merge timestamped entries from multiple log files). Returns an iterator over the sorted values.