I'll start with the hard truth: If your business model only works as long as you can get an expensive resource (developer talent) for a price lower than the market price, then you don't have a business model. The fact that you're competing against larger companies isn't an excuse. In the development field, larger organizations typically have higher costs per "development unit" than smaller ones (Diseconomy of scale). So you should be able to offer your programmers a higher salary than those larger companies, where every developer has to "pull" for one or two managers, secretaries, HR people and the likes.
That said, I think the best thing you can do in the short run is to hire programmers with little or no experience. Think high-school graduate who liked to play around with Python in his free time. The implicit deal would be: They work for a low salary and in turn you teach them professional programming, good practices, how to deal with customers and so on.