Hi Sakshi,
Welcome to the randomness that is random generators, what you are getting is the expected behaviour.
You could run Generate Random String 3 times and concatenate the 3 strings:
Generate Random String 4 @$!*&%
Generate Random String 4 [LETTERS]
Generate Random String 4 [NUMBERS]
But I suspect that Password from FakerLibrary might be a better option for what you want to do, that library has a lot of other useful keywords for generating random data too.
Dave.