Пытаемся на текущее место поставить все числа от 1 до K. Для каждого варианта делаем рекурсивный вызов для следующей позиции. Текущий вариант запоминается в глобальном массиве. При вызове рекурсивной процедуры для (N+1)-го места просто выводим очередную цепочку, записанную в массиве.