import java.util.*; public class Solution { public static String[] generatePermutation(String str) { Set<String> result = new HashSet<>(); f(str.toCharArray(), 0, "", result); return result.toArray(new String[] {}); } public static void f(char[] str, int i, String path, Set<String> ans) { if (str.length == i) { ans.add(path); return; } f(str, i + 1, path, ans); f(str, i + 1, path + str[i], ans); } }