// 全排列,查找A(n,m)的所有情况,如“12”,则12,21
#include <stdio.h>
#include <string.h>
void pailie(char *str, int m, int n){
if (n==0)
{
str = str-m;
printf("%s\n",str);
return;
}
int length = strlen(str);
for (int i=0;i<length;++i)
{
for (int j=i; j<length; ++j)
{
char tmp;
tmp = str[0];
str[0] = str[j];
str[j] = tmp;
pailie(str+1+i, m, n-1);
}
}
}
void main()
{
char p[] = "123";
pailie(p,strlen(p),strlen(p)); // 该处是全排列,可以将第一个strlen(p)替换为小于n的数,即可A(n,m)
}