#include #include #include #include void gen(std::map& a, int count, std::string start, std::vector& res) { if (count == 0) res.push_back(start); for (auto [k, v] : a) { if (v > 0) { a[k]--; gen(a, count - 1, start + k, res); a[k]++; } } } int main() { std::string s; std::map a; std::vector sol; std::cin >> s; for (auto c : s) a[c]++; gen(a, s.size(), "", sol); std::cout << sol.size() << "\n"; for (auto x : sol) std::cout << x << "\n"; }