Я всегда тот, кто вызывает findall () =)
>>> strings = ['foofo21', 'bar432', 'foobar12345']
>>> [re.findall(r'(\w+?)(\d+)', s)[0] for s in strings]
[('foofo', '21'), ('bar', '432'), ('foobar', '12345')]
Обратите внимание, что я использую более простое (меньше для ввода) регулярное выражение, чем большинство предыдущих ответов.