#include <stdio.h>
#include <string.h>
int a[20], N;
void fun(int n, int r)
{
int i, j, flag;
if( r == n)
{
for(i = 0; i < n; i++)
printf("%d ",a[i]);
puts("");
return ;
}
else
{
for (i = 1; i <= n; i++) {
flag = 1;
for(j = 0; j < r; j++)
if ( i == a[j] )
flag = 0;
if(flag) {
a[r] = i;
fun(n, r + 1);
}
}
}
}
int main( )
{
while (scanf("%d", &N), N)
{
fun( N, 0);
}
return 0;
}
转载于:https://www.cnblogs.com/tangcong/archive/2011/08/11/2135238.html