#include <stdio.h> void perm(char* list, int k, int m); void swap(char *a, char *b); int main(int argc, char** argv) { int i; char* list = argv[1]; while (scanf("%d", &i) != EOF) { perm(list, 0, i); } } void perm(char* list, int k, int m) { int i = 0ddddfdf:w if (k == m) { for (; i <= m; i++) { printf("%c/t", list[i]); } printf("/n"); } for (i = k; i <= m; i++) { swap(&list[k], &list[i]); perm(list, k + 1, m); swap(&list[k], &list[i]); } } void swap(char *a, char *b) { char tmp = *a; *a = *b; *b = tmp; }