C вашей строкой
на выходе получаем строку
021212112221212212121122112212212221112121111212212121212121121122111122112212122211221112212121121122221112111122212111112122121221121112112211112121211211222121111122122211221221112211121221211211122112212112222221222122122212112221222112222122111220 Сумма цифр этой строки
374 - состоит не только из четных цифр
Есть способ решить это задание без программы: Заметим, что при выполнении операций:
заменить (02, 101) - сумма цифр не меняется
заменить (11, 2) - сумма цифр не меняется
заменить (12, 21) - сумма цифр не меняется
заменить (010, 00) - сумма цифр уменьшается на 1, причем 1 раз, т.к. после этой замены появляются 00 и программа завершается
Исходная сумма цифр строки минимум 248/2*(1+2) = 372
372-1=371 - есть нечетные цифры
значит. единиц было больше
ближайшая сумма из четных цифр 402
402+1=403 - не делится на 3
405/3=135
Это
оценка - меньше, чем 135 единиц быть не могло единицы быть не может, а пример с 63 единицами показан выше.
А это
код, который такой результат выдает
for n in range(125,150):
s=list('1' * n + '2' * n )
shuffle(s)
s='0'+''.join(s)+'0'
s1=s
while '00' not in s:
s=s.replace('02','101',1)
s=s.replace('11','2',1)
s=s.replace('12','21',1)
s=s.replace('010','00',1)
ss=sum([int(c) for c in s ])
if all(d in '02468' for d in str(ss) ) :
print(n,ss,s1)
break