#include<stdlib.h>
char c[] = {'a','b','c','d'};
int count = 0;
void swap(char* c, int i ,int j)
{
char temp = c[i];
c[i] = c[j];
c[j] = temp;
}
void findPerm(char* c, int select, int num, int len)
{
if(num == 0)
{
printf("%s",c);
printf("\n");
count++;
return;
}
int i;
for(i = select; i < len; i++)
{
swap(c, i ,select);
findPerm(c, select + 1, num - 1, len);
swap(c, select, i);
}
}
int main()
{
findPerm(c, 0, 4, 4);
printf("\n %d", count);
}
void findANM(char input[], int inLen, char output[], int outLen, int m){int i,j;if(m == 0){for(j = outLen-1; j >= 0; j--){printf("%c ",output[j]);}count++;printf("\n");return;}for(i = inLen-1;i >= 0; i--){char temp = input[i];int isExisted = -1;for(j = outLen-1; j >= 0; j--){if(output[j] == temp){isExisted = 1;break;}}if(isExisted == -1){output[m-1] = input[i];findANM(input, inLen, output,outLen, m - 1);} output[m-1] = ' ';}}