Recursion - All subsequences(output is not coming)

#include<bits/stdc++.h>

using namespace std;

void all_subseq(string str,string ans)
{

if(str.length()==0){
 cout<<ans<endl;
    return;}

for(int i=0;i<str.length();i++)
{
	char ch=str[i];
	string ros=str.substr(i+1);
	all_subseq(ros,ans+ch);

}

}

int main()
{
int n;
cin>>n;
while(n–)
{
string str;
cin>>str;
sort(str.begin(),str.end());
all_subseq(str,"");

    }

return 0;

}