Let's try the example with four characters first, then you can try and see if you can mimic it for three characters.
You have "aabb" that you want to distribute into "_ _ _ _", two cases: one starting with $a$ another starting with $b$.
Case 1: Starting with $a$. This means that you have $2! \cdot 2! \cdot 1! \cdot 1! = 4$ way of permuting the characters.
Let's reason why this is the case. The first place can be one of two $a$'s available. So that's $2!$ ways of choosing it. Then the second place needs to be a $b$, which again you have two of, so $2!$ ways of putting a $b$ there. Then the third and fourth places, you've only got $1$ $a$ and $1$ $b$ left, so they both have $1!$ ways of being put there.
Case 2: Starting with $b$. This means you have $2!\cdot 2!\cdot 1!\cdot 1! = 4$ ways of permuting the characters.
In total, this means you have $4 +4 = 8$ ways of permuting them. Although, really, with experience, you're going to notice that splitting them into cases doesn't really matter, you could have simply exploited the symmetry present.