Print all permutations of a given string in Java
I'd bet you're right with used being somehow strange. The standard algorithm I recall doesn't need it. As I tried to improve your code, I ended up with the standard algorithm, so it's pointless to paste it here (someone else will surely do this better).

So some unsolicited general advice instead(*):

When you start with a main, call a static method, which uses another static method, then you're programming purely procedurally. I always recommend to stop it ASAP, e.g., by something like

public static void main(String[] args) {
    new MyClass().go(args);
}


Then you need no more static and can start putting some fields into your first object.

The other thing is printing instead of doing some reusable work.



(*) I consider this more important the good algorithmization as it took me long to grasp.