#include <iostream>
using namespace std;
void swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
void Permutations(char* a, const int k, const int m) {
if (k == m) { //순열 출력
for (int i = 0; i <= m; i++) {
cout << a[i] << "";
}
cout << endl;
}
else { //a[k] ... a[m]에 있는 여러 순열을 순환적으로 생성
for (int i = k; i <= m; i++) {
swap(a[k], a[i]); //a[k]와 a[i] 교환
Permutations(a, k + 1, m); //a[k+1] .. a[m]에 대한 모든 순열
swap(a[k], a[i]); //원래 상태로 돌리기 위해 다시 교환
}
}
}
int main(){
char a[4] = {'w','x','y','z'};
Permutations(a, 0, 3);
}