Do you know a more efficient, elegant and pythonic way to compare two lists and return both lists without the similar elements at the start as well as the common list head?

```py
list1 = ['A', 'list', 'with', 'text', 'elements']
list2 = ['A', 'list', 'with', 'some', 'text', 'elements']
list3 = ['The', 'list', 'with', 'text', 'elements']

# my current implementation
def strip_head(list1, list2):
    similar = []
    while list1 and list2 and list1[0] == list2[0]:
        similar.append(list1.pop(0))
        list2.pop(0)
    return similar, list1, list2

print(strip_head(list1, list2))  # >>> (['A', 'list', 'with'], ['text', 'elements'], ['some', 'text', 'elements'])
list1 = ['A', 'list', 'with', 'text', 'elements']  # reset list1 since it has been altered by pop
print(strip_head(list1, list3))  # >>> ([], ['A', 'list', 'with', 'text', 'elements'], ['The', 'list', 'with', 'text', 'elements'])

```