next 以及pre 函数的用法
http://blog.csdn.net/yueloveme/article/details/47164529
#include <stdio.h>  
#include <string.h>  
#include <algorithm>  
char a[10]={‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,‘\0‘};//给定一个已排列的数组  
using namespace std;  
int main()  
{  
  int t,n,m;  
  char b[10],c[10],c1[10];  
  scanf("%d",&t);  
  while(t--)  
 { 
      scanf("%d%d",&n,&m);
      strcpy(c,a);
   c[m]=‘\0‘; 
   printf("%s\n",c);     
      while(next_permutation(a,a+n))//将a[0]到a[n]全排列  从小到大 
      {  
          strcpy(c1,a);  
          c1[m]=‘\0‘;//取前m个元素
          if(strcmp(c1,c)!=0)
    {
     printf("%s\n",c1);
     strcpy(c,c1);
       }    
      }
  }  
  return 0;  
}  
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/yueloveme/article/details/47164561