Retina, 5252 31 bytes
\d+ $* +m`^^((1+) ((1+|1+ )*)(+(\1?)(1*)<-2>\2)$ $2$4¶$2$6 1m`^$+$ Try it online!Try it online! Takes input as a space-separated list of coins and notes followed by the desired value.
I wanted Edit: Saved 18 bytes thanks to do this in a single regexp using balancing groups@Kobi who debugged my code. Explanation: The idea isfirst two lines simply convert from decimal to match all of the coin and note values,unary. The third line then repeat through possibly matching each ofcaptures the balancing groupslist of coins and notes. But I guessThe alternation allows the regexp engine doesn'tto backtrack inand choose not to capture specific coins/notes. The balancing group then matches the way I wantvalue against all suffixes of the the capture list (unnecessary but golfier.)
\d+ $* ^((1+) )+(\2?(?<-2>))+$