There's a sweet spot in the senior to junior ratio that varies based on the scope and scale of the project. I find that I can only handle three or four junior/mid-level programmers in a mentoring role. More than that and I'm spending all my time herding cats. I wasn't actually suggesting excluding junior programmers from projects, just that more senior people should be a plus in most projects.
It's good to keep in mind that junior/mid/senior are shorthand for a spectrum of abilities, not hard milestones in a career. And where a person sits on that spectrum depends on the project, domain, and team, not on number of years or jobs listed on a resume.
Some more junior programmers bring a lot of talent and enthusiasm to a team, some need more guidance and deliberate mentoring and practice. Some understand the business domain, some don't. A lot of individual personality comes into it. I've worked with juniors who need almost no day-to-day supervision, and I've worked with so-called senior programmers who need their work checked every day lest they go off into the weeds.
The main ability I would look for in a junior programmer is communication, both listening and voicing ideas and opinions, attention to detail, caring about the business domain, and getting along with and cooperating with other team members. If they simply can't learn to write production-quality code that will be evident fairly soon (if they even get through the interviews). It's the people who can write code but can't work with a team or larger organization who drag projects down.