fork download
  1. #include<stdio.h>
  2. #include<string.h>
  3. char res_d[4 * 3 * 2 * 1][5]; int res_i; void narabe(char *d, int n) { int i, j, len = strlen(d); char c; if (n <= 1) { for (i = 0; i < res_i; i++) if (0 == strcmp(res_d[i], d)) return; strcpy(res_d[res_i++], d); return; } for (j = 0; j < n; j++) { narabe(d, n - 1); c = d[len - n]; for (i = 0; i < n - 1; i++) d[len - n + i] = d[len - n + i + 1]; d[len - n + i] = c; } } int main() { char d[] = "aabc"; int i; res_i = 0; narabe(d, strlen(d)); for (i = 0; i < res_i; i++) printf("%s\n", res_d[i]); return 0; }
  4.  
Success #stdin #stdout 0s 1788KB
stdin
Standard input is empty
stdout
aabc
aacb
abca
abac
acab
acba
bcaa
baac
baca
caab
caba
cbaa