Bir Kelimenin Büyük ve Küçük Harf Permütasyonlarını Almak

<?php
class buyukkucukPermutasyon{
	var $metin="";
	var $uzunluk=0;
	var $diziler=array();
	var $metinler=array();
	function buyukkucukPermutasyon($metin){
		header('Content-Type: text/html; charset=utf-8');
		mb_internal_encoding('UTF-8');
		$this->metin=$metin;
		$this->uzunluk=mb_strlen($metin);
	}
	function getir_buyukkucukPermutasyon(){
		$len=mb_strlen($this->metin);
		$this->permutasyon($this->metin,"");
		$this->dizi($this->diziler);
	}
	function permutasyon($metin,$deger=""){
		if ($metin!=""){
			$this->diziler[]=array($deger.mb_strtolower($metin{0}),$this->permutasyon(mb_substr($metin,1,mb_strlen($metin)),$deger.mb_strtolower($metin{0})) );
			$this->diziler[]=array($deger.mb_strtoupper($metin{0}),$this->permutasyon(mb_substr($metin,1,mb_strlen($metin)),$deger.mb_strtoupper($metin{0})) );
		}
	}
	function dizi($a=array()){
		while (list($anahtar, $deger) = each ($a)) {
		if(count($deger)<1) continue;
		   if((gettype($deger)=="array") && (count($deger)>0)) $this->dizi($deger);
		   elseif($this->uzunluk==mb_strlen($deger)) $this->metinler[]=$deger;
		}
	}
	function getir_metinler(){
		return $this->metinler;
	}
	function getir_diziler(){
		return $this->diziler;
	}
	function getir_uzunluk(){
		return $this->uzunluk;
	}
}
echo "<pre>";
$a = new buyukkucukPermutasyon("ulusan");
$a->getir_buyukkucukPermutasyon();
print_r($a->getir_metinler());
?>

Çıktısı

Array
(
    [0] => ulusan
    [1] => ulusaN
    [2] => ulusAn
    [3] => ulusAN
    [4] => uluSan
    [5] => uluSaN
    [6] => uluSAn
    [7] => uluSAN
    [8] => ulUsan
    [9] => ulUsaN
    [10] => ulUsAn
    [11] => ulUsAN
    [12] => ulUSan
    [13] => ulUSaN
    [14] => ulUSAn
    [15] => ulUSAN
    [16] => uLusan
    [17] => uLusaN
    [18] => uLusAn
    [19] => uLusAN
    [20] => uLuSan
    [21] => uLuSaN
    [22] => uLuSAn
    [23] => uLuSAN
    [24] => uLUsan
    [25] => uLUsaN
    [26] => uLUsAn
    [27] => uLUsAN
    [28] => uLUSan
    [29] => uLUSaN
    [30] => uLUSAn
    [31] => uLUSAN
    [32] => Ulusan
    [33] => UlusaN
    [34] => UlusAn
    [35] => UlusAN
    [36] => UluSan
    [37] => UluSaN
    [38] => UluSAn
    [39] => UluSAN
    [40] => UlUsan
    [41] => UlUsaN
    [42] => UlUsAn
    [43] => UlUsAN
    [44] => UlUSan
    [45] => UlUSaN
    [46] => UlUSAn
    [47] => UlUSAN
    [48] => ULusan
    [49] => ULusaN
    [50] => ULusAn
    [51] => ULusAN
    [52] => ULuSan
    [53] => ULuSaN
    [54] => ULuSAn
    [55] => ULuSAN
    [56] => ULUsan
    [57] => ULUsaN
    [58] => ULUsAn
    [59] => ULUsAN
    [60] => ULUSan
    [61] => ULUSaN
    [62] => ULUSAn
    [63] => ULUSAN
)

 

Harflerin Permütasyonlarını Yazdırmak

<?php
class permutasyon{
	var $uzunluk;
	var $permutasyonSayac;
	var $permutasyonlar;
	var $ciz;
function permutasyon($veriler, $uzunluk) {
		$this->uzunluk=$uzunluk;
		for ($i = 0; $i < strlen($veriler); $i++) {
			$permutasyonlar[0][$i] = substr($veriler, $i, 1);
			$gecici[$i]         = substr($veriler, $i, 1);
			$gecici2[0][$i]     = substr($veriler, $i, 1);  
		}                                 
		for ($i = 1; $i < $uzunluk; $i++) {
			for ($k = 0; $k < strLen($veriler); $k++) {
				for ($j = 0; $j < sizeof($gecici2[$i - 1]); $j++) {
					$permutasyonlar[$i][($k * sizeof($gecici2[$i - 1])) + $j] = $gecici[$k] . $gecici2[$i - 1][$j];
					$gecici2[$i][($k * sizeof($gecici2[$i - 1])) + $j]     = $gecici[$k] . $gecici2[$i - 1][$j];
				}		
			}
		}   
		$k = 0;
		for ($i = 0; $i < $uzunluk; $i++) {
			$k += sizeof($permutasyonlar[$i]);
		}
		$this->permutasyonSayac = $k;
		$this->permutasyonlar=$permutasyonlar;	
		return $permutasyonlar;		      
	}   
	function ciz(){
		for ($i = 0; $i < $this->uzunluk; $i++) {
			for ($j = 0; $j < sizeof($this->permutasyonlar[$i]); $j++) {
				$this->ciz.=$this->permutasyonlar[$i][$j] . "<br>";
			}	                                
			$this->ciz.= "<br>";
		} 
		return $this->ciz;
	}
}      
$permutasyon= new permutasyon("ab", 3);
echo "<b>".$permutasyon->permutasyonSayac."</b> permütasyon oluşturuldu.<br>";
echo $permutasyon->ciz();
?>

Çıktısı

14 permütasyon oluşturuldu.
a
b

aa
ab
ba
bb

aaa
aab
aba
abb
baa
bab
bba
bbb