#include <iostream>
#include <string>
using namespace std;
void generuj_permutacje(string zrodlo, string tworzacy)
{
if(zrodlo.length() == 0)
{
cout << tworzacy << endl;
}
else
for (int i = 0; i < zrodlo.length(); i++)
{
string noweZrodlo = zrodlo;
string nowyTworzacy = tworzacy + zrodlo[i];
noweZrodlo.erase(i, 1);
generuj_permutacje(noweZrodlo, nowyTworzacy);
}
}
int main()
{
string zrodlo = "abcd";
string tworzacy = "";
generuj_permutacje(zrodlo, tworzacy);
}
CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAp2b2lkIGdlbmVydWpfcGVybXV0YWNqZShzdHJpbmcgenJvZGxvLCBzdHJpbmcgdHdvcnphY3kpCnsKICAgIGlmKHpyb2Rsby5sZW5ndGgoKSA9PSAwKQogICAgewogICAgICAgIGNvdXQgPDwgdHdvcnphY3kgPDwgZW5kbDsKICAgIH0KICAgIGVsc2UKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHpyb2Rsby5sZW5ndGgoKTsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgc3RyaW5nIG5vd2Vacm9kbG8gPSB6cm9kbG87CiAgICAgICAgICAgIHN0cmluZyBub3d5VHdvcnphY3kgPSB0d29yemFjeSArIHpyb2Rsb1tpXTsKICAgICAgICAgICAgbm93ZVpyb2Rsby5lcmFzZShpLCAxKTsKICAgICAgICAgICAgZ2VuZXJ1al9wZXJtdXRhY2plKG5vd2Vacm9kbG8sIG5vd3lUd29yemFjeSk7CiAgICAgICAgfQp9CiAKaW50IG1haW4oKQp7CiAgICBzdHJpbmcgenJvZGxvID0gImFiY2QiOwogICAgc3RyaW5nIHR3b3J6YWN5ID0gIiI7CiAgICBnZW5lcnVqX3Blcm11dGFjamUoenJvZGxvLCB0d29yemFjeSk7Cn0=