import java.util.*;
class Permute{
static List<List<Integer>> permute(java.util.List<Integer> arr, int k){
List<List<Integer>> arrs = new ArrayList<>();
for(int i = k; i < arr.size(); i++){
arrs.addAll(permute(arr, k+1));
}
if (k == arr.size() -1){
arrs.add(new ArrayList<>(arr));
}
return arrs;
}
public static void main
(String[] args
){ List
<Integer
> arr
= new ArrayList
<>(Arrays.
asList(1,
2,
3)); System.
out.
println(Permute.
permute(arr,
0)); }
}
aW1wb3J0IGphdmEudXRpbC4qOwpjbGFzcyBQZXJtdXRlewogICAgc3RhdGljIExpc3Q8TGlzdDxJbnRlZ2VyPj4gcGVybXV0ZShqYXZhLnV0aWwuTGlzdDxJbnRlZ2VyPiBhcnIsIGludCBrKXsKICAgICAgICBMaXN0PExpc3Q8SW50ZWdlcj4+IGFycnMgPSBuZXcgQXJyYXlMaXN0PD4oKTsKICAgICAgICBmb3IoaW50IGkgPSBrOyBpIDwgYXJyLnNpemUoKTsgaSsrKXsKICAgICAgICAgICAgamF2YS51dGlsLkNvbGxlY3Rpb25zLnN3YXAoYXJyLCBpLCBrKTsKICAgICAgICAgICAgYXJycy5hZGRBbGwocGVybXV0ZShhcnIsIGsrMSkpOwogICAgICAgICAgICBqYXZhLnV0aWwuQ29sbGVjdGlvbnMuc3dhcChhcnIsIGssIGkpOwogICAgICAgIH0KICAgICAgICBpZiAoayA9PSBhcnIuc2l6ZSgpIC0xKXsKICAgICAgICAgICAgYXJycy5hZGQobmV3IEFycmF5TGlzdDw+KGFycikpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYXJyczsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKXsKICAgICAgICBMaXN0PEludGVnZXI+IGFyciA9IG5ldyBBcnJheUxpc3Q8PihBcnJheXMuYXNMaXN0KDEsMiwzKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFBlcm11dGUucGVybXV0ZShhcnIsMCkpOwogICAgfQp9
[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 2, 1], [3, 1, 2]]