Making the same amount from different combinations of coins (top-down approach)
Simpler base case

I suggest returning 0 as the base case to avoid the if c check di as x += 0 does not change it. 

Iterate at a higher level

Use for item in collection not range(len. The index can be obtained with enumerate.

Avoid repetition

You repeat _get_num_of_changes(amount - coin, denominations, twice, use a ternary conditional expression to avoid it.

Avoid manual summing

Starting at \$0\$ and writing += is too manual in Python, I suggest using sum.