I was able to come up with the high-level solution almost immediately. Where I faltered was making small implementation mistakes that I don't usually make due to nervousness.
I was able to go into the interview with a mindset that was both realistic and productive.
Although I wasn't able to identify every issue with my solution, I was able to identify and fix some issues.
I realized that my while-loops were missing an update of the iteration variable.
I realized that, after a recursive call returns, I have to pop the previous choice from the working combo.
I was able to begin executing the code (using comments) on a test case as I had set out to do.
Include meditation in my warm-up sequence. Be well-meditated before future interviews. Plan on finishing my warm-up sequence half an hour before the interview start to give myself time to be well-meditated.
Hold more practice sessions under realistic conditions. Schedule interviews using Gainlo, Interviewing, and Pramp.
Print statements weren't working. This made it difficult to debug the code. I delayed troubleshooting this problem and didn't figure it out until the end.
Next time, consider getting the print statements working a priority.
If print statements don't work, one possibility is an infinite loop. Double-check the loop conditions and make sure the iteration variables are updated properly on each loop iteration.
Initially, the logging was confusing. I eventually had to indent the logging for level of recursion depth. Not having done it very often, I felt mental resistance to implementing indentation.
Include indented logging in the warm-up routine. At the next interview, just do it from the start.
I wasn't confident in the names of the list operations, e.g. add or append.
Include list operations in my warm-up sequence.
I didn't increment the iteration variable in my while-loops.
Include while-loops in my warm-up sequence. An alternative is to use for-comprehensions instead. (Though I prefer while-loops.)
Executing the code on a test case using comments took a long time especially since I was also narrating what I was doing.
Next time, before doing such a deep testing, see if I can first spot errors by just by narrating the code step-by-step.
In my initial implementation, I neglected to ensure the target sum was greater than or equal to 0. For the base case, I only checked to see that there was one choice remaining.
Next time, when handling the base case, make sure to consider all parameters.
I missed that, to prevent duplicates, each new choice has to be bigger than the last choice.
I initially misunderstood the question. For some reason, I thought we were being presented with an input array.
Next time, come up with an example of an input and check it with the interviewer (per pgbovine's recommendation).
What went right? What did I do right?