No test case passed,, please check my code

import java.util.*;
public class Main {
public static String swap(String str, int i, int j){

	StringBuilder sb = new StringBuilder(str); 
    sb.setCharAt(i, str.charAt(j)); 
    sb.setCharAt(j, str.charAt(i)); 
    return sb.toString(); 

}
public static void rec(String str, int s, String org){
	if(s==str.length()){
		if(str.compareTo(org)>0){
			System.out.println(str);
			return;
		}
		else
		return;
	
	}
	for(int j=s;j<str.length();j++){
		str=swap(str,s,j);
		rec(str,s+1,org);

	}



}
public static void main(String args[]) {
    // Your Code Here
	Scanner sc=new Scanner(System.in);
	String str=sc.next();
	int len=str.length();
	String org=str;
	rec(str,0,org);

}

}

Hey @Vipin_coder
The output strings must be lexicographically sorted.
try for this input :
acb
your code gives :
cab
cba
bac
bca
correct output :
bac
bca
cab
cba