fork(1) download
  1. /*This is by Technical Bangla from University of Dhaka*/
  2. #include <stdio.h>
  3. #define MAX 20
  4.  
  5. char str[MAX],taken[MAX],used[MAX];
  6.  
  7. void Permutation(char *a,int i,int n)
  8. {
  9. int j;
  10. if(i==n-1)
  11. {
  12. int k=0;
  13. while(k<n)
  14. {
  15. for(i=0;i<n;i++)
  16. {
  17. if(i==k) printf("%c",a[n-1]);
  18. if(i!=n-1) printf("%c",taken[i]);
  19. }
  20. printf("\n");k++;
  21. }
  22. }
  23. else
  24. {
  25. for(j=1;j<n;j++)
  26. {
  27. if(used[n-j-1]);
  28. else
  29. {
  30. used[n-j-1]=1;
  31. taken[i]=a[n-j-1];
  32. Permutation(a,i+1,n);
  33. used[n-j-1]=0;
  34. }
  35. }
  36. }
  37. return ;
  38. }
  39.  
  40. int main()
  41. {
  42. int len,first=1;
  43. while(scanf(" %[^\n]s",str)!=EOF)
  44. {
  45. for(len=0;str[len];len++) used[len]=0;
  46. Permutation(str,0,len);
  47. printf("\n");
  48. }
  49. return 0;
  50. }
  51.  
Success #stdin #stdout 0s 3300KB
stdin
abc
a  b
bac
dcba
stdout
cba
bca
bac
cab
acb
abc

b  a
 b a
  ba
  ab
b a 
 ba 
 ab 
 a b
b  a
 b a
  ba
  ab
b a 
 ba 
 ab 
 a b
ba  
ab  
a b 
a  b
ba  
ab  
a b 
a  b

cab
acb
abc
cba
bca
bac

abcd
bacd
bcad
bcda
abdc
badc
bdac
bdca
acbd
cabd
cbad
cbda
acdb
cadb
cdab
cdba
adbc
dabc
dbac
dbca
adcb
dacb
dcab
dcba