Phase 1: Hit every target. Tap candidates to build paths — overshoots accumulate dead ends.
LC 39 · Combination Sum

Given an array of distinct integers candidates and an integer target, return every unique combination of candidates that sums to target. Each candidate may be used UNLIMITED times — reuse is allowed.

candidates · target
[2, 3, 6, 7]
target7
output
[2, 2, 3][7]

Reuse is the trap. The tree of choices is infinite unless you cap it — either by the target collapsing to zero (accept) or overshooting (reject). Counting is not the hard part; knowing when to stop is.

Spend EXACTLY seven

I once tried to find all the ways to spend exactly seven dollars when the only coins I had were nickels, dimes, tens, and a half-dollar denomination I had invented on the spot. Two minutes in, I had scribbled twenty-three paths on a napkin, and at least half of them ended with negative dollars. I was, technically, insolvent.

That is the shape of the problem. Pick items from a menu of candidates, add them up, report every combination that lands EXACTLY on the target. Your candidates are 2367, your target is 7, and you may reuse any candidate as many times as you like. The trap is not counting — it is knowing when to stop.

Budget
Taps0
Dead ends0 / 3
Budget7 / 7
Candidates — tap one to spend it

Produce 3 more overshoots to unlock the next step. Your recursion has no brakes — lean into that.