import re
for s in ['2211111122', '001111100', '001111122']:
    print(re.sub('([02-9])(1+)\\1', lambda m: '{0}<{1}>{0}'.format(m.group(
        1), '0' * len(m.group(2))), s))
Условное сглаживание/исправление списка в Python