#include <iostream> #include <vector> #include <unordered_map> using namespace std; vector<string> resultStr_list; bool hash_bool[10]; void dfs(int n, string& input_str, string& output_str) { if (n == 0) { resultStr_list.push_back(output_str); return; } for (int i = 0; i < input_str.size(); i++) { if (hash_bool[i] == false) { hash_bool[i] = true; string temp_str = output_str + input_str[i]; dfs(n - 1, input_str, temp_str); hash_bool[i] = false; } } } int main() { string input_str; cin>>input_str; string output_str = ""; for (int i = 0; i < 10; i++) { hash_bool[i] = false; } dfs(input_str.size(), input_str, output_str); for (int i = 0; i < resultStr_list.size(); i++) { cout << resultStr_list[i] << endl; } }