#include <algorithm>
#include <iostream>
#include <vector>
int main() {
const int MAX_INPUT = 10;
const int INPUT = 2;
std::string symbols = "0123456789";
std::vector<int> symbolChooseTable(MAX_INPUT-INPUT, 0);
std::vector<int> allOnes(INPUT, 1);
symbolChooseTable.insert(symbolChooseTable.end(), allOnes.begin(), allOnes.end());
auto GetSelectedSymbols = [&symbols, &symbolChooseTable]()
{
std::string selectedSymbol;
for (size_t i = 0; i<symbolChooseTable.size(); ++i)
{
if (symbolChooseTable[i])
{
selectedSymbol += symbols[i];
}
}
return selectedSymbol;
};
do
{
auto selectedSymbols = GetSelectedSymbols();
do
{
std::cout << selectedSymbols << "\n";
} while (std::next_permutation(selectedSymbols.begin(), selectedSymbols.end()));
} while (std::next_permutation(symbolChooseTable.begin(), symbolChooseTable.end()));
return 0;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKaW50IG1haW4oKSB7Cgljb25zdCBpbnQgTUFYX0lOUFVUID0gMTA7Cgljb25zdCBpbnQgSU5QVVQgPSAyOwoJCiAgICBzdGQ6OnN0cmluZyBzeW1ib2xzID0gIjAxMjM0NTY3ODkiOwogICAgCiAgICBzdGQ6OnZlY3RvcjxpbnQ+IHN5bWJvbENob29zZVRhYmxlKE1BWF9JTlBVVC1JTlBVVCwgMCk7CiAgICBzdGQ6OnZlY3RvcjxpbnQ+IGFsbE9uZXMoSU5QVVQsIDEpOwogICAgc3ltYm9sQ2hvb3NlVGFibGUuaW5zZXJ0KHN5bWJvbENob29zZVRhYmxlLmVuZCgpLCBhbGxPbmVzLmJlZ2luKCksIGFsbE9uZXMuZW5kKCkpOwogICAgCiAgICBhdXRvIEdldFNlbGVjdGVkU3ltYm9scyA9IFsmc3ltYm9scywgJnN5bWJvbENob29zZVRhYmxlXSgpCiAgICB7CiAgICAJc3RkOjpzdHJpbmcgc2VsZWN0ZWRTeW1ib2w7CiAgICAJZm9yIChzaXplX3QgaSA9IDA7IGk8c3ltYm9sQ2hvb3NlVGFibGUuc2l6ZSgpOyArK2kpCiAgICAJewogICAgCQlpZiAoc3ltYm9sQ2hvb3NlVGFibGVbaV0pCiAgICAJCXsKICAgIAkJCXNlbGVjdGVkU3ltYm9sICs9IHN5bWJvbHNbaV07CiAgICAJCX0KICAgIAl9CiAgICAJcmV0dXJuIHNlbGVjdGVkU3ltYm9sOwogICAgfTsKIAkKIAlkbwogCXsKIAkJYXV0byBzZWxlY3RlZFN5bWJvbHMgPSBHZXRTZWxlY3RlZFN5bWJvbHMoKTsKIAkJZG8KIAkJewogCQkJc3RkOjpjb3V0IDw8IHNlbGVjdGVkU3ltYm9scyA8PCAiXG4iOwogCQl9IHdoaWxlIChzdGQ6Om5leHRfcGVybXV0YXRpb24oc2VsZWN0ZWRTeW1ib2xzLmJlZ2luKCksIHNlbGVjdGVkU3ltYm9scy5lbmQoKSkpOwogCX0gd2hpbGUgKHN0ZDo6bmV4dF9wZXJtdXRhdGlvbihzeW1ib2xDaG9vc2VUYWJsZS5iZWdpbigpLCBzeW1ib2xDaG9vc2VUYWJsZS5lbmQoKSkpOwogICAgCglyZXR1cm4gMDsKfQ==