1.PHP实现
<?php //打印一个字符串的全部排列 //排列的个数为 n! ,n为字符串的长度 // function printArrange($str=[],$i=0,&$target=[]) { $len = count($str); //抵达字符串的最后一个字符时停止 if(($i+1) == $len) { array_push($target,$str); return; } for($j=$i;$j<$len;$j++) { swap($str,$i,$j); printArrange($str,$i+1,$target);//$str[0,$i]是已经排列的字符串 //swap($str,$i,$j); } } function swap(&$str=[],$i,$j) { $temp = $str[$i]; $str[$i] = $str[$j]; $str[$j] = $temp; } //$str=['H','E','L','L','O',',','W','O','R','L','D']; //$str=['W','O','R','L','D']; $str=['W','O','R']; $target=[]; printArrange($str,$i=0,$target); print_r($target);