用到 next_permutation 函数,和 subst r函数
next_permutation(s.begin(), s.end() ), 表示求一个字符串的全排列。
substr ( begin, end ) 表示求一个串 的begin 到 end 的子串,其中 begin 和 end 是下表
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main()
{
int N,n,m;
cin>>N;
while(N--)
{
cin>>n>>m;
string str,s;
for(int i = 1; i <= n; i++)
str += i+'0';
s = str.substr(0,m);
cout<<s<<endl;
int len = str.size();
while(next_permutation(str.begin(),str.end()))
{
if(s!= str.substr(0,m))
{
s = str.substr(0,m);
cout<<s<<endl;
}
}
}
return 0;
}