Beispiel mit foreach Schleifen:

Code:
<?php
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789öäüÜÄÖß!?-_.,:;&$+#/§';
$chars_with_space = $chars.' ';
$result = array();

foreach($chars_with_space AS $a){
foreach($chars_with_space AS $b){
foreach($chars AS $c){
//foreach($chars AS $d){
//foreach($chars AS $e){
//foreach($chars AS $f){
//foreach($chars AS $g){
//foreach($chars AS $h){
//foreach($chars AS $i){
//foreach($chars AS $j){
//foreach($chars AS $k){
//foreach($chars AS $l){
  $string = $a.$b.$c.$d.$f.$g.$h.$i.$j.$k.$l;
  $result[] = $string;
//}}}}}}}}}
}}}

var_dump($result);

?>
Ist etwas einfacher zu verstehen und erfüllt den selben Zweck.
Für weitere Iterationen die // passend wegmachen.

Achja, mehr als ein paar tausend Einträge wirst du in ein Array nicht hereinbekommen. Musste also vorher die Daten wegschreiben.

Ganz nebenbei:
Soeine BruteForce Worlist ist schwachsinnig, jedes Bruteforce Programm kann selber den nächsten String generieren.