import java.util.*; class ArrayPermutationOne { private void recurPermute(int[] nums, List ds, List> finalAnswer, boolean[] freq) { if (ds.size() == nums.length){ finalAnswer.add(new ArrayList<>(ds)); return; } for (int i=0; i> permute(int[] nums) { List> finalAnswer = new ArrayList<>(); List ds = new ArrayList<>(); boolean[] freq = new boolean[nums.length]; recurPermute(nums, ds, finalAnswer, freq); return finalAnswer; } } public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // Input size System.out.print("Enter number of elements: "); int n = sc.nextInt(); int[] nums = new int[n]; // Input array elements System.out.println("Enter elements:"); for (int i = 0; i < n; i++) { nums[i] = sc.nextInt(); } Solution obj = new Solution(); List> result = obj.permute(nums); // Print permutations System.out.println("Permutations:"); for (List perm : result) { System.out.println(perm); } sc.close(); } }