입력 : ) abc
 
출력 : abc, acb, bac, bca, cab, cba
  (3!
=6개의 결과가 출력)


recursive로 구현하면 졸라 편한데

이걸 interative로 구현하래 도대체 어떻게 알고리즘을 짜야되나여

포문 졸라 돌려볼라고 해도 도더ㅐ체 어떻게 돌려야할지 감도 안잡힘

일단 만들어본건
void perm(char *list) { //abcde
        int a,b,c,d,e;
        for(a=0; a<strlen(list); a++){
                for(b=0; b<strlen(list)&&b!=a; b++){
                        for(c=0; c<strlen(list)&&c!=a&&c!=b; c++){
                                for(d=0; d<strlen(list)&&d!=a&&d!=b&&d!=c; d++){
                                        for(e=0; e<strlen(list)&&e!=a&&e!=b&&e!=c&&e!=d; e++)
                                                printf("%c%c%c%c%c ", list[a],list[b],list[c],list[d],list[e]);}}}}



}

근데 안됨..