<?php
$digits = range(10, 100, 10);

function find_100($digits, $current = array()){
    static $matches = [];

    foreach ($digits as $key => $digit) {

        if(array_sum($current)>100)
            break;

        if (array_sum($current) + $digit == 100) {
            $match = $current;
            $match[] = $digit;
            sort($match);
            $matches[] = $match;
        }

        if (count($digits) > 1) {
            $next_current = $current;
            $next_current[] = $digit;

            $next_step_digits = $digits;
            unset($next_step_digits[$key]);

            find_100(array_values($next_step_digits), $next_current);
        }
    }

    if(empty($current)){
        return array_map("unserialize", array_unique(array_map("serialize", $matches)));
    }
}

var_dump(find_100($digits));