{"id":766,"date":"2020-06-10T08:02:44","date_gmt":"2020-06-10T08:02:44","guid":{"rendered":"https:\/\/blog.prepbytes.com\/?p=766"},"modified":"2022-03-25T11:00:26","modified_gmt":"2022-03-25T11:00:26","slug":"permuseq","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/permuseq\/","title":{"rendered":"PERMUSEQ"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180858225-Article_432.png\" alt=\"\" \/><\/p>\n<h3>CONCEPTS USED:<\/h3>\n<blockquote>\n<p>Recursion<\/p>\n<\/blockquote>\n<h3>DIFFICULTY LEVEL:<\/h3>\n<blockquote>\n<p>Hard<\/p>\n<\/blockquote>\n<h3>PROBLEM STATEMENT<code>(<\/code>SIMPLIFIED<code>)<\/code>:<\/h3>\n<blockquote>\n<p>Given a sorted array <code>A<\/code> containing <code>N<\/code> distinct elements, your task is to find the M<sup>th<\/sup> permutation of the given array.<\/p>\n<\/blockquote>\n<h4>For Example :<\/h4>\n<pre><code>Input : \n\nN = 3, M = 5\nA = [3 4 5] \n\nOutput : 5 3 4\n\nExplanation : \n\nAll 3! = 6 permutations of the given array are\n\n1st : 3 4 5\n\n2nd : 3 5 4\n\n3rd : 4 3 5\n\n4th : 4 5 3\n\n5th : 5 3 4\n\n6th : 5 4 3<\/code><\/pre>\n<p><strong><em>Can we use <code>Recursion<\/code> here ?<\/em><\/strong>  <\/p>\n<blockquote>\n<p><strong>Yes<\/strong>, <code>Recursion<\/code> is a good option whenever we need to find different permutations or combinations. <\/p>\n<\/blockquote>\n<h3>OBSERVATION :<\/h3>\n<blockquote>\n<ol>\n<li>\n<p>Total number of <code>unique<\/code> permutations of <code>A<\/code> will be <code>N!<\/code>     <\/p>\n<\/li>\n<li>\n<p>So finding all such permutations and then printing M<sup>th<\/sup> permutation can give <code>TLE<\/code> for large values of <code>N<\/code>.<\/p>\n<\/li>\n<\/ol>\n<\/blockquote>\n<h3>SOLVING APPROACH:<\/h3>\n<blockquote>\n<ol>\n<li>\n<p>The idea is to recursively keep finding the element in the array that should appear in the M<sup>th<\/sup> permutation element by element, printing it and deleting it from the original array till all the elements are not printed.  <\/p>\n<\/li>\n<li>\n<p><strong><em>Interesting point<\/em><\/strong> is, value of <code>k-1<\/code> say <code>K<\/code>, divided by the <code>factorial of (sizeOfArray - 1)<\/code> gives us the position of the element in the array that should be currently placed in the <code>M^{th}<\/code> permutation of the array. We can find the position, print the element and delete it from the original array and Similarly positions of all such elements can be calculated one after the other, value of <code>K<\/code> is reduced to <code>K % fact<\/code> on each iteration.<br \/>\nLet us understand it more clearly by the illustration given below.<\/p>\n<\/li>\n<\/ol>\n<\/blockquote>\n<p><a href=\"https:\/\/mycode.prepbytes.com\/problems\/recursion\/PERMUSEQ\" title=\"Go to mycode.prepbytes.com\" target=\"_blank\" rel=\"noopener noreferrer\"><u><strong><\/strong><\/u><\/a><\/p>\n<h3>ILLUSTRATION :<\/h3>\n<pre><code>A = [3 4 5], N = 3\nk = 5\n\nfact = factorial(N - 1) = factorial(3 - 1) = factorial(2) = 2\nK = k - 1 = 5 - 1 = 4\n\nposition = K \/ fact = 4 \/ 2 = 2\nThis gives us the index of our first element of the 5th permutation of the given array.\nPrint A[position] = A[2] = 5, also delete it from current array.\nAlso update value of K as K = K % fact = 4 % 2 = 0 =&gt; K = 0\n\nA = [3 4], N = 2\n\nfact = factorial(N - 1) = factorial(2 - 1) = factorial(1) = 1\nK = 0\n\nposition = K \/ fact = 0 \/ 1 = 0\nThis gives us the index of our next element of the 5th permutation of the given array.\nPrint A[position] = A[0] = 3, also delete it from current array.\n\nA = [3], N = 1\n\nfact = factorial(N - 1) = factorial(1 - 1) = factorial(0) = 1\nK = 0\n\nposition = K \/ fact = 0 \/ 1 = 0\nThis gives us the index of our next element of the 5th permutation of the given array.\nPrint A[position] = A[0] = 4, also delete it from current array.\n\nTherefore, 5th permutation of the array [3 4 5] is printed as =&gt; 5 3 4 <\/code><\/pre>\n<h3>SOLUTIONS:<\/h3>\n<p>\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_767 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_767 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_767 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_767 .wpsm_nav-tabs > li.active > a, #tab_container_767 .wpsm_nav-tabs > li.active > a:hover, #tab_container_767 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_767 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_767 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_767 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_767 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_767 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_767 .wpsm_nav-tabs > li > a:hover , #tab_container_767 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_767 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_767 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_767 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_767 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_767 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_767 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_767 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_767 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_767 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_767 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_767 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_767\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_767\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_767_1\" aria-controls=\"tabs_desc_767_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C++<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_767_2\" aria-controls=\"tabs_desc_767_2\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>Java<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_767\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_767_1\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"cpp\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\ninclude &lt;bits\/stdc++.h&gt;\r\nusing namespace std;\r\n\r\n\/* function for finding factorial of a number *\/\r\nint fact(int n)\r\n{\r\n   if(n==0)\r\n       return 1;\r\n\r\n   return n*fact(n-1);\r\n}\r\nstring answer(vector&lt;int&gt; &amp;v, int k)\r\n{\r\n   int A=v.size();\r\n   if(A==0)\r\n       return \"\";\r\n\r\n   \/* finding factorial of size - 1 *\/\r\n   int f = fact(A-1);\r\n\r\n   \/* finding the position index of the element to be placed first *\/\r\n   int pos = k\/f;\r\n   k = k % f;\r\n\r\n   \/* converting element to be placed first into string *\/\r\n   string str = to_string(v[pos]);\r\n\r\n   \/* deleting the found element from the array *\/\r\n   v.erase(v.begin() + pos);\r\n\r\n   \/* print the element that should be placed first \r\n      and recursively find all such elements *\/\r\n   return str + \" \" + answer(v, k);\r\n}\r\n\r\n\r\nint main() {\r\n\r\n  int n,k;\r\n  cin&gt;&gt;n&gt;&gt;k;\r\n  vector&lt;int&gt;v(n,0);\r\n\r\n  for(int i=0;i&lt;n;i++)\r\n     cin&gt;&gt;v[i];\r\n\r\n  cout &lt;&lt; answer(v, k-1);\r\n\r\n  return 0;\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane \" id=\"tabs_desc_767_2\">\r\n\t\t\t\t\t\t\t\t<!-- wp:enlighter\/codeblock {\"language\":\"java\"} -->\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\r\nimport java.util.*;\r\nimport java.io.*;\r\n\r\npublic class Main {\r\n\r\n  \/* function for finding factorial of a number *\/\r\n  static int fact(int n)\r\n  {\r\n     if(n==0)\r\n         return 1;\r\n\r\n     return n*fact(n-1);\r\n  }\r\n\r\n  static String answer(ArrayList&lt;Integer&gt; v, int k)\r\n  {\r\n     int A=v.size();\r\n     if(A==0)\r\n         return \"\";\r\n\r\n     \/* finding factorial of size - 1 *\/\r\n     int f = fact(A-1);\r\n\r\n     \/* finding the position index of the element to be placed first *\/\r\n     int pos = k\/f;\r\n     k = k % f;\r\n\r\n     \/* converting element to be placed first into string *\/\r\n     String str = Integer.toString(v.get(pos));\r\n\r\n     \/* deleting the found element from the array *\/\r\n     v.remove(pos);\r\n\r\n     \/* print the element that should be placed first \r\n        and recursively find all such elements *\/\r\n     return str + \" \" + answer(v, k);\r\n  }\r\n  public static void main(String args[]) throws IOException {\r\n\r\n    Scanner sc = new Scanner(System.in);\r\n    int n = sc.nextInt();\r\n    int k = sc.nextInt();\r\n\r\n    ArrayList&lt;Integer&gt; v = new ArrayList&lt;Integer&gt;(n); \r\n\r\n\r\n    for(int i=0;i&lt;n;i++){\r\n      int temp = sc.nextInt();\r\n      v.add(temp);\r\n    }\r\n\r\n    System.out.println(answer(v, k-1));\r\n  }\r\n}\r\n<\/pre>\r\n<!-- \/wp:enlighter\/codeblock -->\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_767 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_767 a\"),jQuery(\"#tab-content_767\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t<br \/>\n[forminator_quiz id=&quot;775&quot;]<\/p>\n<p>This article tried to discuss Recursion. Hope this blog helps you understand and solve the problem. To practice more problems on Recursion you can check out <a href=\"#\"><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CONCEPTS USED: Recursion DIFFICULTY LEVEL: Hard PROBLEM STATEMENT(SIMPLIFIED): Given a sorted array A containing N distinct elements, your task is to find the Mth permutation of the given array. For Example : Input : N = 3, M = 5 A = [3 4 5] Output : 5 3 4 Explanation : All 3! = [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[46],"tags":[30,52,60,47],"class_list":["post-766","post","type-post","status-publish","format-standard","hentry","category-recursion-interview-programming","tag-arrays","tag-combinatorics","tag-permutation","tag-recursion"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Recursion Interview Programming | Permuseq | Prepbytes<\/title>\n<meta name=\"description\" content=\"Recursion is a good option whenever we need to find different permutations or combinations.Total number of unique permutations of A will be N!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/permuseq\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Recursion Interview Programming | Permuseq | Prepbytes\" \/>\n<meta property=\"og:description\" content=\"Recursion is a good option whenever we need to find different permutations or combinations.Total number of unique permutations of A will be N!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/permuseq\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-10T08:02:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-25T11:00:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180858225-Article_432.png\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/permuseq\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/permuseq\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"PERMUSEQ\",\"datePublished\":\"2020-06-10T08:02:44+00:00\",\"dateModified\":\"2022-03-25T11:00:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/permuseq\/\"},\"wordCount\":226,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/permuseq\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180858225-Article_432.png\",\"keywords\":[\"arrays\",\"combinatorics\",\"permutation\",\"recursion\"],\"articleSection\":[\"Recursion Interview Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/permuseq\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/permuseq\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/permuseq\/\",\"name\":\"Recursion Interview Programming | Permuseq | Prepbytes\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/permuseq\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/permuseq\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180858225-Article_432.png\",\"datePublished\":\"2020-06-10T08:02:44+00:00\",\"dateModified\":\"2022-03-25T11:00:26+00:00\",\"description\":\"Recursion is a good option whenever we need to find different permutations or combinations.Total number of unique permutations of A will be N!\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/permuseq\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/permuseq\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/permuseq\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180858225-Article_432.png\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180858225-Article_432.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/permuseq\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Recursion Interview Programming\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/recursion-interview-programming\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"PERMUSEQ\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Recursion Interview Programming | Permuseq | Prepbytes","description":"Recursion is a good option whenever we need to find different permutations or combinations.Total number of unique permutations of A will be N!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prepbytes.com\/blog\/permuseq\/","og_locale":"en_US","og_type":"article","og_title":"Recursion Interview Programming | Permuseq | Prepbytes","og_description":"Recursion is a good option whenever we need to find different permutations or combinations.Total number of unique permutations of A will be N!","og_url":"https:\/\/prepbytes.com\/blog\/permuseq\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2020-06-10T08:02:44+00:00","article_modified_time":"2022-03-25T11:00:26+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180858225-Article_432.png","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/permuseq\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/permuseq\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"PERMUSEQ","datePublished":"2020-06-10T08:02:44+00:00","dateModified":"2022-03-25T11:00:26+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/permuseq\/"},"wordCount":226,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/permuseq\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180858225-Article_432.png","keywords":["arrays","combinatorics","permutation","recursion"],"articleSection":["Recursion Interview Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/permuseq\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/permuseq\/","url":"https:\/\/prepbytes.com\/blog\/permuseq\/","name":"Recursion Interview Programming | Permuseq | Prepbytes","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/permuseq\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/permuseq\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180858225-Article_432.png","datePublished":"2020-06-10T08:02:44+00:00","dateModified":"2022-03-25T11:00:26+00:00","description":"Recursion is a good option whenever we need to find different permutations or combinations.Total number of unique permutations of A will be N!","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/permuseq\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/permuseq\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/permuseq\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180858225-Article_432.png","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1645180858225-Article_432.png"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/permuseq\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"Recursion Interview Programming","item":"https:\/\/prepbytes.com\/blog\/category\/recursion-interview-programming\/"},{"@type":"ListItem","position":3,"name":"PERMUSEQ"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/766","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=766"}],"version-history":[{"count":11,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/766\/revisions"}],"predecessor-version":[{"id":8224,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/766\/revisions\/8224"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=766"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=766"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=766"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}