原理就是用七位二进制数代表七个元素,用这个数分别和(64,32,16,8,4,2,1)做位运算得出为1的位数输出,然后把这个数减一递归,代码贴上:
$total_number=64+32+16+8+4+2+1;
print_combination($total_number);
//位运算函数
function bit_operation($input)
{
// echo $input." ";
$values = array(64,32,16,8,4,2,1);
$stack = array();
foreach($values as $value)
{
$bit=$value&$input;
array_push($stack,$bit);
}
// print_r($stack);
return $stack;
}
//输出函数
function print_combination($input)
{
if($input>0){
$results=bit_operation($input);
echo "t";
foreach($results as $result)
{
// echo $result;
if($result==64){echo a;}
elseif($result==32){echo b;}
elseif($result==16){echo c;}
elseif($result==8){echo d;}
elseif($result==4){echo e;}
elseif($result==2){echo f;}
elseif($result==1){echo g;}
}
print_combination(--$input,$values);
}
}
?>