What is wrong in my code?

package HACKERBLOCKS;

import java.util.ArrayList;
import java.util.Scanner;

public class trickypermutations {

public static void main(String[] args) {
	Scanner scn = new Scanner(System.in);
	String str = scn.next();

	ArrayList<String> r = getpp(str);
	for (int i = 0; i < r.size() - 1; i++) {
		for (int j = 1; j < r.size(); j++) {

			if (r.get(i) == r.get(j)) {
				r.remove(i);
			}
		}
	}
	System.out.println(r);
}

public static ArrayList<String> getpp(String str) {

	char ch = str.charAt(0);
	if (str.length() == 0) {
		ArrayList<String> br = new ArrayList<String>();
		br.add("");
		return br;
	}

	String ros = str.substring(1);

	ArrayList<String> rr = getpp(ros);
	ArrayList<String> mr = new ArrayList<String>();

	for (String rrs : rr) {
		for (int i = 0; i < rrs.length(); i++) {
			String val = rrs.substring(0, i) + ch + rrs.substring(i);
			mr.add(val);
		}
	}
	return mr;
}

}

hey @harsh.hj
char ch = str.charAt(0); // ye After Base Case hoga
if (str.length() == 0) {
ArrayList br = new ArrayList();
br.add("");
return br;
}
char ch = str.charAt(0);