>>416 3番目の6桁も探してます。
#include <stdio.h>
short table[18]={1,1,1, 3,3,3, 5,5,5, 7,7,7,7, 9,9,9,9,9};
short flag[18]; // = 0
short data[18];
void f(short flag[18], short i, short data[18]){
  short a1, j;
  int b1, b2, b3;
  if(i>=18){
    if(data[6]<data[0] || data[12]<data[0] || data[12]<data[6]) return;
    b1=data[ 0]*100000+data[ 1]*10000+data[ 2]*1000+data[ 3]*100+data[ 4]*10+data[ 5];
    b2=data[ 6]*100000+data[ 7]*10000+data[ 8]*1000+data[ 9]*100+data[10]*10+data[11];
    b3=data[12]*100000+data[13]*10000+data[14]*1000+data[15]*100+data[16]*10+data[17];
    if(b2<b1 || b3<b1 || b3<b2) return;
    if(b1+b2+b3 == 1234567){
      for(j=0;j<6;j++) printf("%d",data[j]); printf(" ");
      for(j=6;j<12;j++) printf("%d",data[j]); printf(" ");
      for(j=12;j<18;j++) printf("%d",data[j]); printf("\n");
    }
    return;
  }
  data[i] = -1;
  for(a1=0;a1<18;a1++){
    if(flag[a1] == 1) continue; // 既に使っている
    if(data[i] == table[a1]) continue; // 前回と同じ
    data[i] = table[a1];
    flag[a1] = 1;
    f(flag, i+1, data);
    flag[a1] = 0;
  }
}
void main(void){f(flag, 0, data);}