python/regex: match letter only or letter followed by number

I want to split this string ‘AB4F2D’ in [‘A’, ‘B4’, ‘F2’, ‘D’].
Essentially, if character is a letter, return the letter, if character is a number return previous character plus present character (luckily there is no number >9 so there is never a X12).

I have tried several combinations but I am not able to find the correct one:

def get_elements(input_string):

    patterns = [
        r'[A-Z][A-Z0-9]',
        r'[A-Z][A-Z0-9]|[A-Z]',
        r'\D|\D\d',
        r'[A-Z]|[A-Z][0-9]',
        r'[A-Z]{1}|[A-Z0-9]{1,2}'
        ]

    for p in patterns:
        elements = re.findall(p, input_string)
        print(elements)

results:

['AB', 'F2']
['AB', 'F2', 'D']
['A', 'B', 'F', 'D']
['A', 'B', 'F', 'D']
['A', 'B', '4F', '2D']

Can anyone help? Thanks

Read more here: Source link