#include<bits/stdc++.h> using namespace std; typedef unsigned long long ull; #include<bits/stdc++.h> using namespace std; // 回溯穷举(可以将题目逻辑转化为树型结构理解) void traversal(string ans, const string &s, vector<bool> &used) { // 递归终止条件 if (ans.size() == s.size()) { cout << ans << endl; return; } // 遍历一层中所有可能的结果 for (int i = 0; i < s.size(); i++) { if (!used[i]) { used[i] = true; traversal(ans + s[i], s, used); used[i] = false; } } } int main(){ string str = ""; while (cin >> str) { vector<bool> used(str.size(), false); traversal("", str, used); } return 0; }