coins = [ 200, 100, 50, 20, 10, 5, 2, 1 ] value = 200 def count(v, c): if v == 0: return 1 if len(c) == 1: return 1 sum = 0 n = v / c[0] for i in range(0, n+1): sum += count(v-i*c[0], c[1:]) return sum print count(value, coins)