//function call
print_r(combinations([1,2,3,4,5,6,7,8,9,10,11,12,13]));
/**
 * @param $mainArray
 * @param int $size - optional
 * @param array $combinations - optional
 * @return mixed
 */
function combinations($mainArray, $size = 3, $combinations = [])
{
    if (empty($combinations)) {
        $combinations = $mainArray;
    }
    if ($size == 1) {
        return str_replace('-','',$combinations);;
    }
    $newCombination = array();
    foreach ($mainArray as $key => $val){
        foreach ($combinations as $char) {
            if(in_array($val, explode('-', $char))){
                continue;
            }
            $newCombination[] = $val . '-' . $char;
        }
    }
    return combinations($mainArray, $size - 1, $newCombination);
}
//========================= Next solution  ==================================
function sampling($chars, $size, $combinations = array()) {
    # if it's the first iteration, the first set 
    # of combinations is the same as the set of characters
    if (empty($combinations)) {
        $combinations = $chars;
    }
    # we're done if we're at size 1
    if ($size == 1) {
        return $combinations;
    }
    # initialise array to put new values in
    $new_combinations = array();
    # loop through existing combinations and character set to create strings
    foreach ($combinations as $combination) {
        foreach ($chars as $char) {
            $new_combinations[] = $combination .'-'. $char ; 
        }
    }
    # call same function again for the next iteration
    return $this->sampling($chars, $size - 1, $new_combinations);
}
function array_has_dupes($array) {
   return count($array) !== count(array_unique($array));
}   
function total() {
    // Generate ticket price
    $arrfinal = array();
    // combinations
    $chars = array(1,2,3,4,5,6,7,8,9,10,11,12,13); // for 10 digits
    $combinations = $this->sampling($chars, 3);
    //print_r($combinations); //exit;
    foreach($combinations as $key => $val)
    {
        $arr = explode('-', $val);//str_split($val);
        if(!$this->array_has_dupes($arr)){
            $arrfinal[] = str_replace('-', '', $val);
        }
    }
  echo '<pre>'; print_r($arrfinal); echo '</pre>';
}