2017-03-15 1 views
-2

J'essaie de générer toutes les combinaisons possibles d'une chaîne en utilisant PHP. J'ai cherché ce site pendant un moment en essayant de trouver le bon algorithme mais je n'arrive pas à trouver le bon. Pour être plus précis si je saisis la chaîne "hi", je veux qu'elle retourne "hi", "ih", "h", "i". Mais je ne veux pas qu'il réutilise les mêmes personnages plusieurs fois. Donc je ne voudrais pas "hh" et "ii". Existe-t-il un algorithme pour cela? Merci!Générer toutes les combinaisons de chaînes en PHP

+0

cette solution pourrait être ce que vous Lookin pour? http://stackoverflow.com/questions/361/generate-list-of-all-possible-permutations-of-a-string#362 – kendepelchin

+0

Avez-vous des limites? Quelle pourrait être la longueur maximale de la corde? – JustOnUnderMillions

+0

@JustOnUnderMillions La longueur maximale de la chaîne serait probablement d'environ 5 caractères. – Njinx

Répondre

1

Ne pas prendre cela pour la production:

$string = implode('',array_unique(str_split('helpa'))); 
$i=0; 
while($i++<50000){ 
    $coll[substr(str_shuffle($string),0,mt_rand(1,strlen($string)))]=true; 
} 
ksort($coll); 
print '<pre>'; 
print_r(array_keys($coll)); 

Ici vous pouvez tester ce que vous voulez obtenir.

Dans 10000 itération je recevais 325 combinaisons à partir d'une chaîne de longueur 5 (ce qui semble toutes les combinaisons possibles)