Scroll to the bottom if you're after a simple list of matchups.
To start, a recap of basic breeding matchup rules:
- If two Pokemon share an Egg Group and are of opposite genders, then they can breed, and will produce an egg based on the female's species.
- Ditto is compatible with all genders (including genderless) and all Egg Groups, and will produce an egg based on its partner's species.
- Exceptions: Pokemon in the Undiscovered Egg Group can never breed, and Ditto cannot breed with itself.
Now, the two ways that the Nidoran lines are different to others:
- Nidorina and Nidoqueen are in the Undiscovered Egg Group, and thus cannot breed. Nidoran-F (and the entire Nidoking line) are in the Monster and Field groups. (Why?)
- When you breed Nidoran-F, there is a 50% chance you will hatch Nidoran-M instead of Nidoran-F. Likewise, as of Gen 5, if you breed Nidoran-M with Ditto, there is a 50% chance you will hatch Nidoran-F instead of Nidoran-M.
Now, a list of breeding matchups based on all this information:
- Nidoran-F + anything compatible (incl. Nidoran-M) = Nidoran-F or Nidoran-M
- Nidorina can never breed
- Nidoqueen can never breed
- Nidoran-M + anything compatible and not Ditto = refer to female
- Nidorino + anything compatible and not Ditto = refer to female
- Nidoking + anything compatible and not Ditto = refer to female
- Nidoran-M + Ditto = Nidoran-F (Gen 5+) or Nidoran-M
- Nidorino + Ditto = Nidoran-F (Gen 5+) or Nidoran-M
- Nidoking + Ditto = Nidoran-F (Gen 5+) or Nidoran-M
So, in summary: you can hatch Nidoran-M by breeding Nidoran-F with anything compatible (including Nidoran-M), or by breeding Nidoran-M, Nidorino, or Nidoking with Ditto. You cannot guarantee hatching Nidoran-M and not Nidoran-F, except using the latter method in Gen 2 to 4.
More info