Whats wrong in my code

import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
char[]a=s.toCharArray();
Arrays.sort(a);
int k=0;
for(int i=0;i<a.length;i++){
if(a[i]==s.charAt(0)){
k=i;
}
}
HashMap<String,Integer>map=new HashMap<String,Integer>();
map.put(s,1);
s=new String(a);
permutation(s,"",map,k,s.length());
}
public static void permutation(String s,String ans,HashMap<String,Integer>map,int k,int l){
if(ans.length()==l){
if(!map.containsKey(ans)){
System.out.println(ans);
}
}

	for(int i=k;i<s.length();i++){
		char cc=s.charAt(i);
		String ros=s.substring(0,i)+s.substring(i+1);
		permutation(ros,ans+cc,map,0,l);
	}
}

}

@khans5854
why are you using hashmap?

@kashishsingh8700
your hashmap is not checking that new string is greater than the original one.
take for eg this string
acb
you output is
abc
bac
bca
cab
cba

but the output should be
bac
bca
cab
cba

yes,I found it…

@khans5854
please mark your doubt as resolved and rate me as well.:grinning::grinning: