#include <iostream>
#include <vector>
using namespace std;
void sets(char *data,int start,int end,int m, vector<char> &v)
{
if( m <=0 || start>end ||end-start+1<m)
{
if(m ==0)
{
for(vector<char>::iterator it = v.begin();it<v.end();it++)
{
cout << *it;
}
cout << endl;
}
return;
}
else
{
v.push_back(data[start]);
sets(data,start+1,end,m-1,v);
v.pop_back();
sets(data,start+1,end,m,v);
}
}
int main(){
char data[] = "abcd";
vector<char> v;
int len = strlen(data);
for(int i = 1 ; i <= len ; ++i)
{
sets(data,0,len-1,i,v);
}
return 1;
}
结果: