# Find the k th permutation

Problem to find the K th permutation value. First Line contain Integer N and 1<=N<=9.

If N = 3 the permutation are,

1. 123
2. 132
3. 213
4. 231
5. 312
6. 321

## Example-1:

```Input    : N = 3 , K = 3
Output   : "213"
```

## Example-2:

```Input    : N = 3 , K = 4
Output   : "231"
```

## Example-3:

```Input    : N = 4 , K = 18
Output   : "3421"
```

# Solution

```class Solution
{
public String getPermutation(int n, int k)
{
String str = "";

String ans = "";

for(int i = 1; i <= n; i++){

str = str + i;
}

return solve(ans,str,k);
}

public String solve(String ans,String str,int k)
{
int choice_digit = number_of_choice(str.length());

int temp = 0;

for (int i = 0; i <str.length();i++)
{
if((i+1)*choice_digit >= k){

ans = ans + str.charAt(i);

temp = i;

break;
}
}

str = str.substring(0,temp) + str.substring(temp+1,str.length());

if(str.length() != 0)
{
k = k % choice_digit;

if(k==0)
{
k = choice_digit;
}

return solve(ans,str,k);
}

else
{
return ans;
}
}

public int number_of_choice(int num)
{
int fact = 1;

for (int i = 1; i <= num;i++){

fact = fact*i;
}

return fact/num;
}
}

public class Main
{
public static void main(String[] args)
{
Solution obj = new Solution();

System.out.println(obj.getPermutation(4,18));
}
}
```
```from itertools import permutations

n = 4

k = 18

a = ""

for i in range(1,n+1):

a += str(i)

d = list(permutations(a,len(a)))

print("".join(d[k-1]))
```

```3421
```