i only saw intractable solutions for this problem: for a collection with a large cardinality, those solutions are null.
Any tractable solution?

You can solve this by reducing to Combination Sum. Since we only can choose a certain element once in num(but this element might have duplicates in num), so we can view this as doing Combination Sum with constraint that for every element we can only choose it for certain amount of times(comparing to original question which allows unlimited amount of times)