Какой оптимальный алгоритм для создания всех возможных комбинаций строки?

Я нахожу другой подобный вопрос слишком сложным.

Я думаю, что это означает, что если нам дают банк, то комбинации будут горшок выбирать Топ горшок ВОМ горшок

поэтому я написал следующий код:

#include<iostream>
#include<string.h>
using namespace std;

int main(){

    char s[10];
    char temp;
    cin>>s;
    char t[10];
    for(int i=0;i<3;i++)
    {
        for(int j=i;j<3;j++)
        {

            strcpy(t,s);
            temp=s[i];
            s[i]=s[j];
            s[j]=temp;

            cout<<s<<"\n";
            strcpy(s,t);
        }
    }

Есть ли способ лучше ?

Ответы на вопрос(2)

Ваш ответ на вопрос