Good speed.. now try to calculate the combinations on-the-fly