You can use convolution. If f(n) is the number of ways to roll n with some set of dice, and g(n) for another set of dice, then if you use all the dice you get h(n) where

h(n) = sum k=0...n f(k)g(n-k)

So starting with the functions for each individual die, you can do repeated convolution to build up the function for a collection of dice.