That isn't recursion, that's iteration.
To do this recursively, you need a method which accepts a list of possible shots and a target value.
The method then takes one of the shots from the list, and passes the remainder and the new target to itself, by calling itself - it uses itself to work out the rest of the combinations.
I'm not going to go into full details - that would be a lot of work for me (and frankly I can't be bothered to do that at the moment, plus it wouldn;t help you to be given teh solution) but look at a simpler example, and it might make sense:
Private Function factorial(value As Integer) As Integer
If value <= 1 Then
Return 1
End If
Return value * factorial(value - 1)
End Function
5! is 5 * 4!, which is 5 * (4 * 3!) which is 5 * (4 * (3 * 2!)) and so forth, so it calls itself to work out the other "iterations".
When you understand how that works, then start looking at your problem - it's more complicated, but not a lot when you get your head round it.