class Solution {
public List> subsets(int[] nums) {
List> rs=new ArrayList<>();
rs.add(new ArrayList<>());
for (int i = 0; i < nums.length; i++) {
List
list.add(nums[i]);
rs.add(list);
if (nums.length>=i+1) {
for (int j = i+1; j < nums.length; j++) {
List
list1.add(nums[i]);
list1.add(nums[j]);
rs.add(list1);
if (nums.length>=j+1){
for (int k = j+1; k < nums.length; k++) {
List
list2.add(nums[i]);
list2.add(nums[j]);
list2.add(nums[k]);
rs.add(list2);
if (nums.length>=k+1){
for (int l = k+1; l < nums.length; l++) {
List
list3.add(nums[i]);
list3.add(nums[j]);
list3.add(nums[k]);
list3.add(nums[l]);
rs.add(list3);
if (nums.length>=l+1){
for (int m = l+1; m < nums.length; m++) {
List
list4.add(nums[i]);
list4.add(nums[j]);
list4.add(nums[k]);
list4.add(nums[l]);
list4.add(nums[m]);
rs.add(list4);
if (nums.length>=m+1){
for (int n = m+1; n < nums.length; n++) {
List
list5.add(nums[i]);
list5.add(nums[j]);
list5.add(nums[k]);
list5.add(nums[l]);
list5.add(nums[m]);
list5.add(nums[n]);
rs.add(list5);
if (nums.length>=n+1){
for (int b = n+1; b < nums.length; b++) {
List
list6.add(nums[i]);
list6.add(nums[j]);
list6.add(nums[k]);
list6.add(nums[l]);
list6.add(nums[m]);
list6.add(nums[n]);
list6.add(nums[b]);
rs.add(list6);
if (nums.length>=b+1){
for (int v = b+1; v < nums.length; v++) {
List
list7.add(nums[i]);
list7.add(nums[j]);
list7.add(nums[k]);
list7.add(nums[l]);
list7.add(nums[m]);
list7.add(nums[n]);
list7.add(nums[b]);
list7.add(nums[v]);
rs.add(list7);
if (nums.length>=v+1){
for (int c = v+1; c < nums.length; c++) {
List
list8.add(nums[i]);
list8.add(nums[j]);
list8.add(nums[k]);
list8.add(nums[l]);
list8.add(nums[m]);
list8.add(nums[n]);
list8.add(nums[b]);
list8.add(nums[v]);
list8.add(nums[c]);
rs.add(list8);
if (nums.length>=v+1){
for (int x = c+1; x < nums.length; x++) {
List
list9.add(nums[i]);
list9.add(nums[j]);
list9.add(nums[k]);
list9.add(nums[l]);
list9.add(nums[m]);
list9.add(nums[n]);
list9.add(nums[b]);
list9.add(nums[v]);
list9.add(nums[c]);
list9.add(nums[x]);
rs.add(list9);
}}}}}}}}}}}}}
}
}
}
}
}
}
return rs;
}
}