根据此等情况编码如下 A1A1 + A2A2 + A3A3 + ... + AnAn = A1A2A3...An <?php $level = 3; getValue($level); function getValue($level, &$data=array()) { if( $level < 2 ) return false; if( !isset($data[1]) ) { for( $i=1;$i<=$level;$i++) $data[$i]=$i; getValue($level, $data); } if( canRecord($data) ) echo implode("", $data)."/n"; for( $i=$level;$i>0;$i--) { if( $data[$i] + 1 < 10 ) { $data[$i]++; getValue($level, $data); break; } else { if( $i> 1 ) $data[$i] = 1; } } } function canRecord($data) { $data_new = array_unique($data); $len1 = count($data_new); $len2 = sizeof($data); if( $len1 != $len2 ) return false; $sum = 0; $sum1 = 0; foreach( $data as $key => $value ) { $sum += $value * 10 + $value; $sum1 += $value * pow(10, 3-$key); } if( $sum != $sum1 ) return false; return true; }