Есть массив с 9 значениями, в нём есть только такие значения, 1, 2, 3 Нужно через цикл перебрать все возможные расстановки этих цифр в массиве с 9 эелементами, то есть 3 в 9 степени ровно 19683 возможных разных позиций 3 цифр в массиве из 9 элементами. Что то типо такого For 19683{ If m[0] == 1 and m[1] == 1 and ..... // то }
По сути это формирование троичных 9-значных чисел, только без цифры 0 в алфавите. Можешь последовательно выводить числа в диапазоне 0...3 в степени 9 минус 1, преобразуя их в троичную и учитывая алфавит. Алгоритм поищи в сети. Он основан на циклическом целочисленном и взятии остатков в качестве цифр в обратном порядке (можно использовать стек для врем. хранения цифр или какой-либо прямой способ записи результата с конца). --- Добавлено --- Ну и для чисел, не дотягивающих до девяти разрядов, дописываешь нужное кол-во незначащих цифр (обычно нулей, но в данном случае единиц). Или сразу заполняй «сетку» девятью единицами, а потом уже вписывай в нее полученное число.
Посмотрите тут http://www.cyberforum.ru/php/thread1819114.html А потом тут https://stackoverflow.com/questions/5506888/permutations-all-possible-sets-of-numbers