所有子串的全排列
输出一个字符串里所有的子串的全排列
#include <bits/stdc++.h>
using namespace std;
char s[10] = {'a','b','c','d','e','f','g'};
bool vis[10];
char ans[10];
int i;
void dfs(int n,int pos){
if(n == i){
for(int k = 0;k < i;k++){
printf("%c ",ans[k]);
}
cout<<endl;
return;
}
for(int j = pos;j < 7;j++)
if(!vis[j]){
ans[n] = s[j];
vis[j] = 1;
dfs(n+1,j+1);
vis[j] = 0;
}
}
int main(){
for(i = 1;i <= 7;i++){
dfs(0,0);
}
return 0;
}