#include<stdio.h>int arr[]={
1,2,3,6,7};int len =sizeof(arr)/sizeof(arr[0]);int darr[1000];//存的是arr的索引int use[1000]={
0};intDFS(int n,int id){
int i;for(i=0;i<len;i++){
if(use[i]||(i<darr[id-1]&&id>=1))continue;//被占用就跳过
darr[id]=i;
use[i]=1;//标记已使用if(id+1<n)DFS(n,id+1);else{
int k;for(k=0;k<n;k++)printf("%d",arr[darr[k]]);putchar('\n');}
use[i]=0;//释放}}intmain(){
int n;for(n=1;n<=len;n++){
int id=0,tmp;for(tmp=0;tmp<len;tmp++)
darr[tmp]=arr[0];//重置DFS(n,id);}}