Ищу класс функцию для перебора всех возможных вариантов строки
Недавно на Хабре проскакивал топик. Ссылку не сохранил, только код:
<?

$str = "{Пожалуйста|Просто} сделайте так, чтобы это {удивительное|крутое|простое} тестовое предложение {изменялось {быстро|мгновенно} случайным образом|менялось каждый раз}";
$finishStrs = array();

getVariants($str);

function getVariants($str) {
    global $finishStrs;
    $strs = array();
    
    
    if(preg_match("~\{([^{}]+)\}~siU", $str, $m)) {
        
        $foundExpression = $m[1];
        
        $currentVariants = explode("|", $foundExpression);
        
        foreach($currentVariants as $var) {
            $strs[] = str_replace('{'.$foundExpression.'}', $var, $str);
        }
        
        foreach($strs as $currentStr) {
            if(preg_match("~\{([^{}]+)\}~siU", $currentStr, $m)) {
                getVariants($currentStr);
            } else {
                $finishStrs[] = $currentStr;
            }
        }
               
    } else {
        $finishStrs = $str;
    }     

    
}

print_r($finishStrs);

тем кто вдруг сюда зашел, погуглив мою задачу в вакансии — этот алгоритм не учитывает позиционность вхождения и не является верным в общем случае (а не для конкретно данной строки).