動作確認してないがこんなのはいかが?

for ( int i = 0 ; i < 1*2*3*4*5 ; ++i ) {
 int w = i;
 for ( int j = 0 ; j < 5 ; ++j ) {
  int new_val = w % (5 - j);
  w /= (5 - j);
  for ( int k = 0 ; k < j ; ++k ) {
   if ( array[i][k] <= new_val )
    ++new_val;
  }
  array[i][j] = new_val;
 }
}