string per; // 조합을 위한 문자열
set<int> perSet; // 완성된 조합 set
bool check[100] = { false, }; // 방문 여부
vector<char>num; // 조합 elements
void permutation(int depth, int n){ // n은 원하는 문자열 길이
if(depth == n){
perSet.insert(stoi(per)); // 완성된 조합 저장
return;
}
for(int i = 0; i < num.size(); i++){
if(!check[i]){
check[i] = true;
per[depth] = num[i]; // 현재 depth에 i번째 문자 저장
permutation(depth + 1, n); // 다음 depth에서 재귀 실행
check[i] = false; // 현재 depth에 쓰인 문자 풀어주기
}
}
}
permutation(0, 2); // 길이가 2인 조합 얻기