Если в строке достаточно много единиц, то после того, как тело цикла будет выполнено два раза, первые шесть единиц заменятся на две двойки, а первые шесть двоек – на две единицы. На третьей итерации цикла первые три единицы заменятся на двойку, а затем три двойки в начале строки поменяются на единицу. Таким образом, после трёх итераций цикла строка возвращается к исходной структуре (сначала единицы, затем двойки), при этом в ней становится на 6 единиц и 6 двоек меньше. После того как это повторится 7 раз, получится строка 111222. При следующем исполнении цикла сначала 111 заменится на 2, получится 2222, затем 222 в начале строки заменится на 1, получится 12. В этой строке нет трёх единиц, условие цикла не выполнено, выполнение программы на этом завершится.