Error:
do not know. Except directly combine, it also need to use a map to memorized the result, but I do not know why since the intermediate result is not too much.
update:
use pattern:
find(s, sum, p) = find(s, sum, p + 1) + find(s, sum, p + 2). Where s is the string, sum is the array of intermediate result, p is the position. DO NOT USE find(s, sum, p, prev_sum), it will overflow.