Dejen que $\mathbf e_1$ hasta $\mathbf e_n$ sean los vectores unitarios en $\mathbb R^n$, y que $\mathbf a = \sum_{i=1}^n a_i \mathbf e_i\in\mathbb N^n$ sea el vector de conteo. Así que $\mathbf a-\mathbf e_i$ es una forma de decir "tomar los conteos de $\mathbf a$ y restar uno del conteo $i$-ésimo".
Dejen que $C(\mathbf a)$ sea el número de formas de organizar elementos de acuerdo al vector de conteo $\mathbf a$ sin duplicados, y dejen que $D(i, \mathbf a)$ sea el número de formas de organizar elementos de acuerdo a los conteos $\mathbf a$ de tal manera que $i$ sea el primer elemento. Obten estas relaciones:
\begin{align*} C(\mathbf a) &= \sum_{i=1}^n D(i, \mathbf a) \\ D(i, \mathbf a) &= C(\mathbf a - \mathbf e_i) - D(i, \mathbf a - \mathbf e_i) \end{align*}
Esta formulación no considera los casos en los que los conteos se vuelven cero. Pero la idea debería ser bastante clara: tienes $n$ formas de comenzar tu secuencia, y para cada posible elemento de inicio, cuentas el número de formas de organizar los restantes, pero luego nuevamente eliminas esas disposiciones que hubieran repetido el primer elemento. Puedes reformular esto sin $D$:
$$C(\mathbf a) = \sum_{i=1}^n C(\mathbf a-\mathbf e_i) - C(\mathbf a-2\mathbf e_i) + C(\mathbf a-3\mathbf e_i) \dots = \sum_{i=1}^n\sum_{j=1}^{a_i}(-1)^{j+1}C(\mathbf a-j \,\mathbf e_i)$$
Ahora sabes cómo calcular $C(\mathbf a)$ si tienes el número de combinaciones $C(\mathbf{a'})$ para todos los $\mathbf{a'}$ con $\lVert \mathbf{a'}\rVert_1=\lVert \mathbf a\rVert_1-1$, es decir, para todos los vectores de conteo donde se ha reducido un conteo por uno. También tienes $$C(\mathbf 0)=1$$ como base para todos tus conteos. Así que puedes calcular $C(\mathbf a)$ usando programación dinámica. En el camino, todos los vectores de conteo $\mathbf{a'}$ para los cuales calculas $C(\mathbf{a'})$ serán menores o iguales a $\mathbf a$ en cada coordenada, así que puedes calcular un límite para el número de esos valores intermedios como
$$\prod_{i=1}^n a_i+1$$
Dependiendo de los conteos $a_i$, esto puede o no ser adecuado para tu aplicación.
Para tu caso de ejemplo (calculado ya sea sin $D$ o con $D$), obtengo $C(3,2,2)=38$, lo cual es consistente con una computación de fuerza bruta de ese conteo. En caso de que realmente desees distinguir los diferentes objetos del mismo tipo, debes considerar todas las permutaciones dentro de cada tipo, y obtener $38\cdot3!\cdot2!\cdot2!=912$ que según una computación de fuerza bruta similar debería ser el número correcto para esa configuración también.
Para el caso de $a=(2,2,2,2)$, es decir, $n=4$ y $a_1=a_2=a_3=a_4=2$, mi enfoque da una respuesta de 864, consistente con esta respuesta a una pregunta relacionada pero más específica.