The total number of combinations would be the product of all total number of options in each category.

Given your rudimentary example (base (rice, noodles), a protein (beef, pork), a vegetable (snowpeas, brocolli)), the total combinations would be:

2 bases \* 2 proteins \* 2 vegetables = 8 meals.

To start and narrow it down, you'll look at the factors of 1,000:

2\*2\*2\*5\*5\*5

So consider your categories to be buckets. You need to take those three 2s and three 5s and distribute them among your buckets so your buckets have at least one of those numbers in them, and you can't copy or duplicate them. So let's say you have four categories, you could do something like this:

\[2,5\], \[2,2\], \[5\], \[5\]

Then, for any bucket that has more than one number in it, you multiply them together:

\[10\], \[4\], \[5\], \[5\]

And that's how many options you need for that category/bucket. And the total combinations works out:

10\*4\*5\*5 = 1,000