А при чём тут алгоритмы, математика? Это видимо какая-то задачка по программированию для начинающих?
В цикле ставите Z вместо очередной буквы - первой, второй, третьей и т.д.
Второй вопрос - два цикла, один внутри другого.
HrustHr, вы бы попробовали что-то начать писать, всё бы и получилось!
Во внешнем цикле поставили Z на очередную позицию, во внутреннем ставите Y по очереди на все позиции, кроме той, на которой Z.
Смотри я сейчас про одну говорю, это же не все перестановки? У меня все когда устанавливаю Z на позицию, я ее фиксирую, и делаю все возможные перестановки остальных. А то что ты пишешь это другое где здесь все возможные перестановки после замены?