#include<stdio.h> #include<stdlib.h> #include<string.h> #define N 5 int f[N]; int visit[N]; int vis[10000]; void dfs(int sum,int k) { int i; if(k==4) { if(vis[sum]==0) vis[sum]=1; return ; } for(i=0;i<4;i++) { if(visit[i]==0) { visit[i]=1; dfs(sum*10+f[i],k+1); visit[i]=0; } } } int main() { int i,k,sum,ff=0,flag; while(scanf("%d%d%d%d",&f[0],&f[1],&f[2],&f[3]),f[0]||f[1]||f[2]||f[3]) { memset(visit,0,sizeof(visit)); if(ff) printf(" "); ff=1; memset(vis,0,sizeof(vis)); sum=0;k=0; for(i=0;i<4;i++) { visit[i]=1; dfs(sum*10+f[i],k+1); visit[i]=0; } k=1;flag=0; for(i=1000;i<10000;i++) { if(vis[i]) { if(i/1000!=k) { k=i/1000;//刚开始这里写的是i++一直pe,但是想了想应该是这个就对了 if(flag) { printf(" "); flag=0; } } if(flag==0) { flag=1; printf("%d",i); } else printf(" %d",i); } } if(i/1000!=k) { k++; if(flag) { printf(" "); flag=0; } } } return 0; }