The sample code I share inĀ https://david.dlma.com/blog/ways-to-break-a-dollar-into-change is all in #python. What I didn't state at the end, was that the optimal ordering of denominations in the first call results in fewer than 400 calls, while the worst ordering of denominations results in more than 20,000 calls.
So even though you can provide an unordered container, it doesn't mean you should.
So even though you can provide an unordered container, it doesn't mean you should.