Write a method to compute all permutations of a string whose characters are not necessarily unique. The list of permutations should not have duplicates.

Example1:


 Input: S = "qqe"

 Output: ["eqq","qeq","qqe"]

Example2:


 Input: S = "ab"

 Output: ["ab", "ba"]

Note:

  1. All characters are English letters.
  2. 1 <= S.length <= 9