در ضمن از این راه بهینه تر هم می تونی پیدا کنی .
#include <iostream>
#include <vector>
using namespace std;
std::vector<string> result;
string a;
string b;
void permutation(const string &c,int loc,int pt)
{
if(pt>=b.size())
return;
for(int i=loc;i<c.size()+1;i++)
{
string temp=c;
temp.insert(i,1,b[pt]);
permutation(temp,i+1,pt+1);
if(pt==b.size()-1)
result.push_back(temp);
}
}
int main()
{
cin>>a;
cin>>b;
permutation(a,0,0);
for(int i=0;i<result.size();i++)
cout<<result[i]<<endl;
}