Php > Algorithms
Permutation Generator
Permutation Generator function permutations($letters,$num){ $last = str_repeat($letters{0},$num); $result = array(); while($last != str_repeat(lastchar($letters),$num)){ $result[] = $last; $last = char_add($letters,$last,$num-1); } $result[] = $last; return $result; } function char_add($digits,$string,$char){ if($string{$char} <> lastchar($digits)){ $string{$char} = $digits{strpos($digits,$string{$char})+1}; return $string; }else{ $string = changeall($string,$digits{0},$char); return char_add($digits,$string,$char-1); } } function lastchar($string){ return $string{strlen($string)-1}; } function changeall($string,$char,$start = 0,$end = 0){ if($end == 0) $end = strlen($string)-1; for($i=$start;$i<=$end;$i++){ $string{$i} = $char; } return $string; } ?> To use this Generator you can do something like this : $Array=permutations("ABC",3); for($i=0 ; $i < count($Array) ; $i++) { echo "$i." . $Array[$i] . "
"; } ?> The output would look like this : 0.AAA 1.AAB 2.AAC 3.ABA 4.ABB 5.ABC 6.ACA 7.ACB 8.ACC 9.BAA 10.BAB 11.BAC 12.BBA 13.BBB 14.BBC 15.BCA 16.BCB 17.BCC 18.CAA 19.CAB 20.CAC 21.CBA 22.CBB 23.CBC 24.CCA 25.CCB 26.CCC
Php Codes
Algorithms
Arrays
Authentication
Calendar
Code Snippets
Programs
Content Manage
Contest Related
Cookies
Credit Cards
DBase Related
Databases
Date Time
Directories
E-Mail
Errors
File
File System
Forms
Handling
Graphics
HTML and PHP
Informix
Ingres
InterBase
LDAP
Look and Feel
Miscellaneous
MySQL
Other
PHP Classes
Searching
Navigation
Statistics
Strings
User Manage