Это простое кодовое решение вашей проблемы.
Я рекурсивно объединяю каждую строку с остальными в массиве.
$string = "this is a string";
$strings = explode(' ', $string);
// print result
print_r(concat($strings, ""));
// delivers result as array
function concat(array $array, $base_string) {
$results = array();
$count = count($array);
$b = 0;
foreach ($array as $key => $elem){
$new_string = $base_string . " " . $elem;
$results[] = $new_string;
$new_array = $array;
unset($new_array[$key]);
$results = array_merge($results, concat ($new_array, $new_string));
}
return $results;
}