У вас слишком много циклов while (ваш «process2», пока цикл не нужен). Похоже, у вас также есть некоторые ошибки, связанные с тем фактом, что переменные, по которым вы выполняете циклы во внутренних циклах, не реинициализируются с каждой итерацией.
Я бы также рекомендовал использовать циклы while для этого; Ваш пример подходит для цикла гораздо лучше; Я понимаю, что вы пытаетесь изучить механизм зацикливания, но частью обучения также должно быть решение о том, когда использовать какую конструкцию. Это действительно не рекомендация по производительности, а скорее рекомендация подхода.
У меня нет никаких предложений по улучшению производительности за то, что вы пытаетесь сделать; Очевидно, что вы можете удалить циклы (опускаясь до одного или даже без циклов), но два цикла имеют смысл для того, что вы делаете (позволяет легко добавить еще одну строку или столбец к выводу с минимальными изменениями).