#include<cstdio>
#include<iostream>
using namespace std;
int print ();
bool b[100]={0};int a[100]={0};int n,r; int num=0;
int seach(int k)
{
 int j;
 for (j=1;j<=n;j++)
 if (!b[j])
 {
  a[k]=j;
  b[j]=true;
  if (k==r)  print();
  else seach(k+1);
  a[k]=0;b[j]=false;
  
 } 
}
int main()
{
 cin>>n>>r;
 seach(1);
 cout<<num; 
 return 0;
}
int print()
{
 for (int i=1;i<=r;i++)
 {
  cout <<a[i]<<" ";
 }
 num++;
 cout<<endl;
}
我要去重复的数!!!
原文:http://www.cnblogs.com/Iamhero/p/5515512.html