Greedy algorithm and coin algorithm?
===

I've been working on some problems/exercises on Project Euler hoping to practice/learn some optimal algorithms and programming idioms with python.

I came across the this problem [Euler #76][1] which is asking to find all the unique combinations using at least two values to sum to 100.  In researching this problem I came across people referring to the coin problem and the greedy algorithm.  

I had heard of the greedy algorithm before but, never understood or used it.  I thought I would give it a try.  I still am unsure of whether this is the proper way doing it. 



    def greedy(amount):
        combos = {}
        ways = {}
        denominations = [1,5,10,25]
        ## work backwards? ##
        denominations.reverse()
        for i in denominations:
        ## check to see current denominations maximum use ##
            v = amount / i
            k = amount % i
        ## grab the remainder in a variable and use this in a while loop ##
            ways.update({i:v})
        ## update dictionarys ##
            combos.update({i:ways})
            while k != 0:
                for j in denominations:
                    if j <= k:
                        n = k/j
                        k = k % j
                        ways.update({j:n})
                        combos.update({i:ways})
            ways = {}
        return combos

My question is, would this be considered a proper greedy-algorithm?  If not what am I doing wrong.   If correct could I improve optimize?

  [1]: http://projecteuler.net/problem=76