# Generate all palindromic subsequence of n natural number

Here given code implementation process.

``````// C Program
// Generate all palindromic subsequence of n natural number
#include <stdio.h>

// Display calculated result
void printResult(int result[], int n)
{
for (int i = 0; i < n; i++)
{
printf("%d ", result[i]);
}
printf("\n ");
}
void sequence(int result[], int index, int n)
{
if (index == n / 2)
{
if ((n % 2) != 0)
{
// Handles the request of odd length palindrome sequence
for (int i = 1; i <= n; ++i)
{
result[index] = i;
printResult(result, n);
}
}
else
{
printResult(result, n);
}
}
else if (index > n / 2)
{
return;
}
else
{
for (int i = 1; i <= n; ++i)
{
// Set the value of boundary element is to zero
result[index] = i;
result[(n - 1) - index] = i;
sequence(result, index + 1, n);
}
}
}
void palindrome(int n)
{
if (n <= 0)
{
return;
}
printf("\n Given Length : %d\n ", n);
// Auxiliary array which is collect result
int result[n];
sequence(result, 0, n);
}
int main()
{
int n = 4;
/*
n = 4
--------------------
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4
---------------
*/
palindrome(n);
// Test B
n = 5;
// n is 5
palindrome(n);
return 0;
}``````

#### Output

`````` Given Length : 4
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4

Given Length : 5
1 1 1 1 1
1 1 2 1 1
1 1 3 1 1
1 1 4 1 1
1 1 5 1 1
1 2 1 2 1
1 2 2 2 1
1 2 3 2 1
1 2 4 2 1
1 2 5 2 1
1 3 1 3 1
1 3 2 3 1
1 3 3 3 1
1 3 4 3 1
1 3 5 3 1
1 4 1 4 1
1 4 2 4 1
1 4 3 4 1
1 4 4 4 1
1 4 5 4 1
1 5 1 5 1
1 5 2 5 1
1 5 3 5 1
1 5 4 5 1
1 5 5 5 1
2 1 1 1 2
2 1 2 1 2
2 1 3 1 2
2 1 4 1 2
2 1 5 1 2
2 2 1 2 2
2 2 2 2 2
2 2 3 2 2
2 2 4 2 2
2 2 5 2 2
2 3 1 3 2
2 3 2 3 2
2 3 3 3 2
2 3 4 3 2
2 3 5 3 2
2 4 1 4 2
2 4 2 4 2
2 4 3 4 2
2 4 4 4 2
2 4 5 4 2
2 5 1 5 2
2 5 2 5 2
2 5 3 5 2
2 5 4 5 2
2 5 5 5 2
3 1 1 1 3
3 1 2 1 3
3 1 3 1 3
3 1 4 1 3
3 1 5 1 3
3 2 1 2 3
3 2 2 2 3
3 2 3 2 3
3 2 4 2 3
3 2 5 2 3
3 3 1 3 3
3 3 2 3 3
3 3 3 3 3
3 3 4 3 3
3 3 5 3 3
3 4 1 4 3
3 4 2 4 3
3 4 3 4 3
3 4 4 4 3
3 4 5 4 3
3 5 1 5 3
3 5 2 5 3
3 5 3 5 3
3 5 4 5 3
3 5 5 5 3
4 1 1 1 4
4 1 2 1 4
4 1 3 1 4
4 1 4 1 4
4 1 5 1 4
4 2 1 2 4
4 2 2 2 4
4 2 3 2 4
4 2 4 2 4
4 2 5 2 4
4 3 1 3 4
4 3 2 3 4
4 3 3 3 4
4 3 4 3 4
4 3 5 3 4
4 4 1 4 4
4 4 2 4 4
4 4 3 4 4
4 4 4 4 4
4 4 5 4 4
4 5 1 5 4
4 5 2 5 4
4 5 3 5 4
4 5 4 5 4
4 5 5 5 4
5 1 1 1 5
5 1 2 1 5
5 1 3 1 5
5 1 4 1 5
5 1 5 1 5
5 2 1 2 5
5 2 2 2 5
5 2 3 2 5
5 2 4 2 5
5 2 5 2 5
5 3 1 3 5
5 3 2 3 5
5 3 3 3 5
5 3 4 3 5
5 3 5 3 5
5 4 1 4 5
5 4 2 4 5
5 4 3 4 5
5 4 4 4 5
5 4 5 4 5
5 5 1 5 5
5 5 2 5 5
5 5 3 5 5
5 5 4 5 5
5 5 5 5 5
``````
``````// Java program for
// Generate all palindromic subsequence of n natural number
public class Combination
{
// Display calculated result
public void printResult(int[] result, int n)
{
for (int i = 0; i < n; i++)
{
System.out.print(" " + result[i]);
}
System.out.print("\n ");
}
public void sequence(int[] result, int index, int n)
{
if (index == n / 2)
{
if ((n % 2) != 0)
{
// Handles the request of
// odd length palindrome sequence
for (int i = 1; i <= n; ++i)
{
result[index] = i;
printResult(result, n);
}
}
else
{
printResult(result, n);
}
}
else if (index > n / 2)
{
return;
}
else
{
for (int i = 1; i <= n; ++i)
{
// Set the value of boundary element is to zero
result[index] = i;
result[(n - 1) - index] = i;
sequence(result, index + 1, n);
}
}
}
public void palindrome(int n)
{
if (n <= 0)
{
return;
}
System.out.print("\n Given Length : " + n + "\n ");
// Auxiliary array which is collect result
int[] result = new int[n];
sequence(result, 0, n);
}
public static void main(String[] args)
{
int n = 4;
/*
n = 4
--------
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4
--------
*/
// Test B
n = 5;
// n is 5
}
}``````

#### Output

`````` Given Length : 4
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4

Given Length : 5
1 1 1 1 1
1 1 2 1 1
1 1 3 1 1
1 1 4 1 1
1 1 5 1 1
1 2 1 2 1
1 2 2 2 1
1 2 3 2 1
1 2 4 2 1
1 2 5 2 1
1 3 1 3 1
1 3 2 3 1
1 3 3 3 1
1 3 4 3 1
1 3 5 3 1
1 4 1 4 1
1 4 2 4 1
1 4 3 4 1
1 4 4 4 1
1 4 5 4 1
1 5 1 5 1
1 5 2 5 1
1 5 3 5 1
1 5 4 5 1
1 5 5 5 1
2 1 1 1 2
2 1 2 1 2
2 1 3 1 2
2 1 4 1 2
2 1 5 1 2
2 2 1 2 2
2 2 2 2 2
2 2 3 2 2
2 2 4 2 2
2 2 5 2 2
2 3 1 3 2
2 3 2 3 2
2 3 3 3 2
2 3 4 3 2
2 3 5 3 2
2 4 1 4 2
2 4 2 4 2
2 4 3 4 2
2 4 4 4 2
2 4 5 4 2
2 5 1 5 2
2 5 2 5 2
2 5 3 5 2
2 5 4 5 2
2 5 5 5 2
3 1 1 1 3
3 1 2 1 3
3 1 3 1 3
3 1 4 1 3
3 1 5 1 3
3 2 1 2 3
3 2 2 2 3
3 2 3 2 3
3 2 4 2 3
3 2 5 2 3
3 3 1 3 3
3 3 2 3 3
3 3 3 3 3
3 3 4 3 3
3 3 5 3 3
3 4 1 4 3
3 4 2 4 3
3 4 3 4 3
3 4 4 4 3
3 4 5 4 3
3 5 1 5 3
3 5 2 5 3
3 5 3 5 3
3 5 4 5 3
3 5 5 5 3
4 1 1 1 4
4 1 2 1 4
4 1 3 1 4
4 1 4 1 4
4 1 5 1 4
4 2 1 2 4
4 2 2 2 4
4 2 3 2 4
4 2 4 2 4
4 2 5 2 4
4 3 1 3 4
4 3 2 3 4
4 3 3 3 4
4 3 4 3 4
4 3 5 3 4
4 4 1 4 4
4 4 2 4 4
4 4 3 4 4
4 4 4 4 4
4 4 5 4 4
4 5 1 5 4
4 5 2 5 4
4 5 3 5 4
4 5 4 5 4
4 5 5 5 4
5 1 1 1 5
5 1 2 1 5
5 1 3 1 5
5 1 4 1 5
5 1 5 1 5
5 2 1 2 5
5 2 2 2 5
5 2 3 2 5
5 2 4 2 5
5 2 5 2 5
5 3 1 3 5
5 3 2 3 5
5 3 3 3 5
5 3 4 3 5
5 3 5 3 5
5 4 1 4 5
5 4 2 4 5
5 4 3 4 5
5 4 4 4 5
5 4 5 4 5
5 5 1 5 5
5 5 2 5 5
5 5 3 5 5
5 5 4 5 5
5 5 5 5 5
``````
``````// Include header file
#include <iostream>

using namespace std;
// C++ program for
// Generate all palindromic subsequence of n natural number
class Combination
{
public:
// Display calculated result
void printResult(int result[], int n)
{
for (int i = 0; i < n; i++)
{
cout << " " << result[i];
}
cout << "\n ";
}
void sequence(int result[], int index, int n)
{
if (index == n / 2)
{
if ((n % 2) != 0)
{
// Handles the request of
// odd length palindrome sequence
for (int i = 1; i <= n; ++i)
{
result[index] = i;
this->printResult(result, n);
}
}
else
{
this->printResult(result, n);
}
}
else if (index > n / 2)
{
return;
}
else
{
for (int i = 1; i <= n; ++i)
{
// Set the value of boundary element is to zero
result[index] = i;
result[(n - 1) - index] = i;
this->sequence(result, index + 1, n);
}
}
}
void palindrome(int n)
{
if (n <= 0)
{
return;
}
cout << "\n Given Length : " << n << "\n ";
// Auxiliary array which is collect result
int result[n];
this->sequence(result, 0, n);
}
};
int main()
{
int n = 4;
/*
n = 4
--------
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4
--------
*/
// Test B
n = 5;
// n is 5
return 0;
}``````

#### Output

`````` Given Length : 4
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4

Given Length : 5
1 1 1 1 1
1 1 2 1 1
1 1 3 1 1
1 1 4 1 1
1 1 5 1 1
1 2 1 2 1
1 2 2 2 1
1 2 3 2 1
1 2 4 2 1
1 2 5 2 1
1 3 1 3 1
1 3 2 3 1
1 3 3 3 1
1 3 4 3 1
1 3 5 3 1
1 4 1 4 1
1 4 2 4 1
1 4 3 4 1
1 4 4 4 1
1 4 5 4 1
1 5 1 5 1
1 5 2 5 1
1 5 3 5 1
1 5 4 5 1
1 5 5 5 1
2 1 1 1 2
2 1 2 1 2
2 1 3 1 2
2 1 4 1 2
2 1 5 1 2
2 2 1 2 2
2 2 2 2 2
2 2 3 2 2
2 2 4 2 2
2 2 5 2 2
2 3 1 3 2
2 3 2 3 2
2 3 3 3 2
2 3 4 3 2
2 3 5 3 2
2 4 1 4 2
2 4 2 4 2
2 4 3 4 2
2 4 4 4 2
2 4 5 4 2
2 5 1 5 2
2 5 2 5 2
2 5 3 5 2
2 5 4 5 2
2 5 5 5 2
3 1 1 1 3
3 1 2 1 3
3 1 3 1 3
3 1 4 1 3
3 1 5 1 3
3 2 1 2 3
3 2 2 2 3
3 2 3 2 3
3 2 4 2 3
3 2 5 2 3
3 3 1 3 3
3 3 2 3 3
3 3 3 3 3
3 3 4 3 3
3 3 5 3 3
3 4 1 4 3
3 4 2 4 3
3 4 3 4 3
3 4 4 4 3
3 4 5 4 3
3 5 1 5 3
3 5 2 5 3
3 5 3 5 3
3 5 4 5 3
3 5 5 5 3
4 1 1 1 4
4 1 2 1 4
4 1 3 1 4
4 1 4 1 4
4 1 5 1 4
4 2 1 2 4
4 2 2 2 4
4 2 3 2 4
4 2 4 2 4
4 2 5 2 4
4 3 1 3 4
4 3 2 3 4
4 3 3 3 4
4 3 4 3 4
4 3 5 3 4
4 4 1 4 4
4 4 2 4 4
4 4 3 4 4
4 4 4 4 4
4 4 5 4 4
4 5 1 5 4
4 5 2 5 4
4 5 3 5 4
4 5 4 5 4
4 5 5 5 4
5 1 1 1 5
5 1 2 1 5
5 1 3 1 5
5 1 4 1 5
5 1 5 1 5
5 2 1 2 5
5 2 2 2 5
5 2 3 2 5
5 2 4 2 5
5 2 5 2 5
5 3 1 3 5
5 3 2 3 5
5 3 3 3 5
5 3 4 3 5
5 3 5 3 5
5 4 1 4 5
5 4 2 4 5
5 4 3 4 5
5 4 4 4 5
5 4 5 4 5
5 5 1 5 5
5 5 2 5 5
5 5 3 5 5
5 5 4 5 5
5 5 5 5 5
``````
``````// Include namespace system
using System;
// Csharp program for
// Generate all palindromic subsequence of n natural number
public class Combination
{
// Display calculated result
public void printResult(int[] result, int n)
{
for (int i = 0; i < n; i++)
{
Console.Write(" " + result[i]);
}
Console.Write("\n ");
}
public void sequence(int[] result, int index, int n)
{
if (index == n / 2)
{
if ((n % 2) != 0)
{
// Handles the request of
// odd length palindrome sequence
for (int i = 1; i <= n; ++i)
{
result[index] = i;
this.printResult(result, n);
}
}
else
{
this.printResult(result, n);
}
}
else if (index > n / 2)
{
return;
}
else
{
for (int i = 1; i <= n; ++i)
{
// Set the value of boundary element is to zero
result[index] = i;
result[(n - 1) - index] = i;
this.sequence(result, index + 1, n);
}
}
}
public void palindrome(int n)
{
if (n <= 0)
{
return;
}
Console.Write("\n Given Length : " + n + "\n ");
// Auxiliary array which is collect result
int[] result = new int[n];
this.sequence(result, 0, n);
}
public static void Main(String[] args)
{
int n = 4;
/*
n = 4
--------
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4
--------
*/
// Test B
n = 5;
// n is 5
}
}``````

#### Output

`````` Given Length : 4
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4

Given Length : 5
1 1 1 1 1
1 1 2 1 1
1 1 3 1 1
1 1 4 1 1
1 1 5 1 1
1 2 1 2 1
1 2 2 2 1
1 2 3 2 1
1 2 4 2 1
1 2 5 2 1
1 3 1 3 1
1 3 2 3 1
1 3 3 3 1
1 3 4 3 1
1 3 5 3 1
1 4 1 4 1
1 4 2 4 1
1 4 3 4 1
1 4 4 4 1
1 4 5 4 1
1 5 1 5 1
1 5 2 5 1
1 5 3 5 1
1 5 4 5 1
1 5 5 5 1
2 1 1 1 2
2 1 2 1 2
2 1 3 1 2
2 1 4 1 2
2 1 5 1 2
2 2 1 2 2
2 2 2 2 2
2 2 3 2 2
2 2 4 2 2
2 2 5 2 2
2 3 1 3 2
2 3 2 3 2
2 3 3 3 2
2 3 4 3 2
2 3 5 3 2
2 4 1 4 2
2 4 2 4 2
2 4 3 4 2
2 4 4 4 2
2 4 5 4 2
2 5 1 5 2
2 5 2 5 2
2 5 3 5 2
2 5 4 5 2
2 5 5 5 2
3 1 1 1 3
3 1 2 1 3
3 1 3 1 3
3 1 4 1 3
3 1 5 1 3
3 2 1 2 3
3 2 2 2 3
3 2 3 2 3
3 2 4 2 3
3 2 5 2 3
3 3 1 3 3
3 3 2 3 3
3 3 3 3 3
3 3 4 3 3
3 3 5 3 3
3 4 1 4 3
3 4 2 4 3
3 4 3 4 3
3 4 4 4 3
3 4 5 4 3
3 5 1 5 3
3 5 2 5 3
3 5 3 5 3
3 5 4 5 3
3 5 5 5 3
4 1 1 1 4
4 1 2 1 4
4 1 3 1 4
4 1 4 1 4
4 1 5 1 4
4 2 1 2 4
4 2 2 2 4
4 2 3 2 4
4 2 4 2 4
4 2 5 2 4
4 3 1 3 4
4 3 2 3 4
4 3 3 3 4
4 3 4 3 4
4 3 5 3 4
4 4 1 4 4
4 4 2 4 4
4 4 3 4 4
4 4 4 4 4
4 4 5 4 4
4 5 1 5 4
4 5 2 5 4
4 5 3 5 4
4 5 4 5 4
4 5 5 5 4
5 1 1 1 5
5 1 2 1 5
5 1 3 1 5
5 1 4 1 5
5 1 5 1 5
5 2 1 2 5
5 2 2 2 5
5 2 3 2 5
5 2 4 2 5
5 2 5 2 5
5 3 1 3 5
5 3 2 3 5
5 3 3 3 5
5 3 4 3 5
5 3 5 3 5
5 4 1 4 5
5 4 2 4 5
5 4 3 4 5
5 4 4 4 5
5 4 5 4 5
5 5 1 5 5
5 5 2 5 5
5 5 3 5 5
5 5 4 5 5
5 5 5 5 5
``````
``````package main
import "fmt"
// Go program for
// Generate all palindromic subsequence of n natural number
type Combination struct {}
func getCombination() * Combination {
var me *Combination = &Combination {}
return me
}
// Display calculated result
func(this Combination) printResult(result[] int, n int) {
for i := 0 ; i < n ; i++ {
fmt.Print(" ", result[i])
}
fmt.Print("\n ")
}
func(this Combination) sequence(result[] int, index int, n int) {
if index == n / 2 {
if (n % 2) != 0 {
// Handles the request of
// odd length palindrome sequence
for i := 1 ; i <= n ; i++ {
result[index] = i
this.printResult(result, n)
}
} else {
this.printResult(result, n)
}
} else if index > n / 2 {
return
} else {
for i := 1 ; i <= n ; i++ {
// Set the value of boundary element is to zero
result[index] = i
result[(n - 1) - index] = i
this.sequence(result, index + 1, n)
}
}
}
func(this Combination) palindrome(n int) {
if n <= 0 {
return
}
fmt.Print("\n Given Length : ", n, "\n ")
// Auxiliary array which is collect result
var result = make([] int, n)
this.sequence(result, 0, n)
}
func main() {
var task * Combination = getCombination()
var n int = 4
/*
n = 4
--------
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4
--------
*/
// Test B
n = 5
// n is 5
}``````

#### Output

`````` Given Length : 4
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4

Given Length : 5
1 1 1 1 1
1 1 2 1 1
1 1 3 1 1
1 1 4 1 1
1 1 5 1 1
1 2 1 2 1
1 2 2 2 1
1 2 3 2 1
1 2 4 2 1
1 2 5 2 1
1 3 1 3 1
1 3 2 3 1
1 3 3 3 1
1 3 4 3 1
1 3 5 3 1
1 4 1 4 1
1 4 2 4 1
1 4 3 4 1
1 4 4 4 1
1 4 5 4 1
1 5 1 5 1
1 5 2 5 1
1 5 3 5 1
1 5 4 5 1
1 5 5 5 1
2 1 1 1 2
2 1 2 1 2
2 1 3 1 2
2 1 4 1 2
2 1 5 1 2
2 2 1 2 2
2 2 2 2 2
2 2 3 2 2
2 2 4 2 2
2 2 5 2 2
2 3 1 3 2
2 3 2 3 2
2 3 3 3 2
2 3 4 3 2
2 3 5 3 2
2 4 1 4 2
2 4 2 4 2
2 4 3 4 2
2 4 4 4 2
2 4 5 4 2
2 5 1 5 2
2 5 2 5 2
2 5 3 5 2
2 5 4 5 2
2 5 5 5 2
3 1 1 1 3
3 1 2 1 3
3 1 3 1 3
3 1 4 1 3
3 1 5 1 3
3 2 1 2 3
3 2 2 2 3
3 2 3 2 3
3 2 4 2 3
3 2 5 2 3
3 3 1 3 3
3 3 2 3 3
3 3 3 3 3
3 3 4 3 3
3 3 5 3 3
3 4 1 4 3
3 4 2 4 3
3 4 3 4 3
3 4 4 4 3
3 4 5 4 3
3 5 1 5 3
3 5 2 5 3
3 5 3 5 3
3 5 4 5 3
3 5 5 5 3
4 1 1 1 4
4 1 2 1 4
4 1 3 1 4
4 1 4 1 4
4 1 5 1 4
4 2 1 2 4
4 2 2 2 4
4 2 3 2 4
4 2 4 2 4
4 2 5 2 4
4 3 1 3 4
4 3 2 3 4
4 3 3 3 4
4 3 4 3 4
4 3 5 3 4
4 4 1 4 4
4 4 2 4 4
4 4 3 4 4
4 4 4 4 4
4 4 5 4 4
4 5 1 5 4
4 5 2 5 4
4 5 3 5 4
4 5 4 5 4
4 5 5 5 4
5 1 1 1 5
5 1 2 1 5
5 1 3 1 5
5 1 4 1 5
5 1 5 1 5
5 2 1 2 5
5 2 2 2 5
5 2 3 2 5
5 2 4 2 5
5 2 5 2 5
5 3 1 3 5
5 3 2 3 5
5 3 3 3 5
5 3 4 3 5
5 3 5 3 5
5 4 1 4 5
5 4 2 4 5
5 4 3 4 5
5 4 4 4 5
5 4 5 4 5
5 5 1 5 5
5 5 2 5 5
5 5 3 5 5
5 5 4 5 5
5 5 5 5 5
``````
``````<?php
// Php program for
// Generate all palindromic subsequence of n natural number
class Combination
{
// Display calculated result
public	function printResult(\$result, \$n)
{
for (\$i = 0; \$i < \$n; \$i++)
{
echo(" ".\$result[\$i]);
}
echo("\n ");
}
public	function sequence(\$result, \$index, \$n)
{
if (\$index == (int)(\$n / 2))
{
if ((\$n % 2) != 0)
{
// Handles the request of
// odd length palindrome sequence
for (\$i = 1; \$i <= \$n; ++\$i)
{
\$result[\$index] = \$i;
\$this->printResult(\$result, \$n);
}
}
else
{
\$this->printResult(\$result, \$n);
}
}
else if (\$index > (int)(\$n / 2))
{
return;
}
else
{
for (\$i = 1; \$i <= \$n; ++\$i)
{
// Set the value of boundary element is to zero
\$result[\$index] = \$i;
\$result[(\$n - 1) - \$index] = \$i;
\$this->sequence(\$result, \$index + 1, \$n);
}
}
}
public	function palindrome(\$n)
{
if (\$n <= 0)
{
return;
}
echo("\n Given Length : ".\$n.
"\n ");
// Auxiliary array which is collect result
\$result = array_fill(0, \$n, 0);
\$this->sequence(\$result, 0, \$n);
}
}

function main()
{
\$n = 4;
/*
n = 4
--------
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4
--------
*/
// Test B
\$n = 5;
// n is 5
}
main();``````

#### Output

`````` Given Length : 4
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4

Given Length : 5
1 1 1 1 1
1 1 2 1 1
1 1 3 1 1
1 1 4 1 1
1 1 5 1 1
1 2 1 2 1
1 2 2 2 1
1 2 3 2 1
1 2 4 2 1
1 2 5 2 1
1 3 1 3 1
1 3 2 3 1
1 3 3 3 1
1 3 4 3 1
1 3 5 3 1
1 4 1 4 1
1 4 2 4 1
1 4 3 4 1
1 4 4 4 1
1 4 5 4 1
1 5 1 5 1
1 5 2 5 1
1 5 3 5 1
1 5 4 5 1
1 5 5 5 1
2 1 1 1 2
2 1 2 1 2
2 1 3 1 2
2 1 4 1 2
2 1 5 1 2
2 2 1 2 2
2 2 2 2 2
2 2 3 2 2
2 2 4 2 2
2 2 5 2 2
2 3 1 3 2
2 3 2 3 2
2 3 3 3 2
2 3 4 3 2
2 3 5 3 2
2 4 1 4 2
2 4 2 4 2
2 4 3 4 2
2 4 4 4 2
2 4 5 4 2
2 5 1 5 2
2 5 2 5 2
2 5 3 5 2
2 5 4 5 2
2 5 5 5 2
3 1 1 1 3
3 1 2 1 3
3 1 3 1 3
3 1 4 1 3
3 1 5 1 3
3 2 1 2 3
3 2 2 2 3
3 2 3 2 3
3 2 4 2 3
3 2 5 2 3
3 3 1 3 3
3 3 2 3 3
3 3 3 3 3
3 3 4 3 3
3 3 5 3 3
3 4 1 4 3
3 4 2 4 3
3 4 3 4 3
3 4 4 4 3
3 4 5 4 3
3 5 1 5 3
3 5 2 5 3
3 5 3 5 3
3 5 4 5 3
3 5 5 5 3
4 1 1 1 4
4 1 2 1 4
4 1 3 1 4
4 1 4 1 4
4 1 5 1 4
4 2 1 2 4
4 2 2 2 4
4 2 3 2 4
4 2 4 2 4
4 2 5 2 4
4 3 1 3 4
4 3 2 3 4
4 3 3 3 4
4 3 4 3 4
4 3 5 3 4
4 4 1 4 4
4 4 2 4 4
4 4 3 4 4
4 4 4 4 4
4 4 5 4 4
4 5 1 5 4
4 5 2 5 4
4 5 3 5 4
4 5 4 5 4
4 5 5 5 4
5 1 1 1 5
5 1 2 1 5
5 1 3 1 5
5 1 4 1 5
5 1 5 1 5
5 2 1 2 5
5 2 2 2 5
5 2 3 2 5
5 2 4 2 5
5 2 5 2 5
5 3 1 3 5
5 3 2 3 5
5 3 3 3 5
5 3 4 3 5
5 3 5 3 5
5 4 1 4 5
5 4 2 4 5
5 4 3 4 5
5 4 4 4 5
5 4 5 4 5
5 5 1 5 5
5 5 2 5 5
5 5 3 5 5
5 5 4 5 5
5 5 5 5 5
``````
``````// Node JS program for
// Generate all palindromic subsequence of n natural number
class Combination
{
// Display calculated result
printResult(result, n)
{
for (var i = 0; i < n; i++)
{
process.stdout.write(" " + result[i]);
}
process.stdout.write("\n ");
}
sequence(result, index, n)
{
if (index == parseInt(n / 2))
{
if ((n % 2) != 0)
{
// Handles the request of
// odd length palindrome sequence
for (var i = 1; i <= n; ++i)
{
result[index] = i;
this.printResult(result, n);
}
}
else
{
this.printResult(result, n);
}
}
else if (index > parseInt(n / 2))
{
return;
}
else
{
for (var i = 1; i <= n; ++i)
{
// Set the value of boundary element is to zero
result[index] = i;
result[(n - 1) - index] = i;
this.sequence(result, index + 1, n);
}
}
}
palindrome(n)
{
if (n <= 0)
{
return;
}
process.stdout.write("\n Given Length : " + n + "\n ");
// Auxiliary array which is collect result
var result = Array(n).fill(0);
this.sequence(result, 0, n);
}
}

function main()
{
var n = 4;
/*
n = 4
--------
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4
--------
*/
// Test B
n = 5;
// n is 5
}
main();``````

#### Output

`````` Given Length : 4
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4

Given Length : 5
1 1 1 1 1
1 1 2 1 1
1 1 3 1 1
1 1 4 1 1
1 1 5 1 1
1 2 1 2 1
1 2 2 2 1
1 2 3 2 1
1 2 4 2 1
1 2 5 2 1
1 3 1 3 1
1 3 2 3 1
1 3 3 3 1
1 3 4 3 1
1 3 5 3 1
1 4 1 4 1
1 4 2 4 1
1 4 3 4 1
1 4 4 4 1
1 4 5 4 1
1 5 1 5 1
1 5 2 5 1
1 5 3 5 1
1 5 4 5 1
1 5 5 5 1
2 1 1 1 2
2 1 2 1 2
2 1 3 1 2
2 1 4 1 2
2 1 5 1 2
2 2 1 2 2
2 2 2 2 2
2 2 3 2 2
2 2 4 2 2
2 2 5 2 2
2 3 1 3 2
2 3 2 3 2
2 3 3 3 2
2 3 4 3 2
2 3 5 3 2
2 4 1 4 2
2 4 2 4 2
2 4 3 4 2
2 4 4 4 2
2 4 5 4 2
2 5 1 5 2
2 5 2 5 2
2 5 3 5 2
2 5 4 5 2
2 5 5 5 2
3 1 1 1 3
3 1 2 1 3
3 1 3 1 3
3 1 4 1 3
3 1 5 1 3
3 2 1 2 3
3 2 2 2 3
3 2 3 2 3
3 2 4 2 3
3 2 5 2 3
3 3 1 3 3
3 3 2 3 3
3 3 3 3 3
3 3 4 3 3
3 3 5 3 3
3 4 1 4 3
3 4 2 4 3
3 4 3 4 3
3 4 4 4 3
3 4 5 4 3
3 5 1 5 3
3 5 2 5 3
3 5 3 5 3
3 5 4 5 3
3 5 5 5 3
4 1 1 1 4
4 1 2 1 4
4 1 3 1 4
4 1 4 1 4
4 1 5 1 4
4 2 1 2 4
4 2 2 2 4
4 2 3 2 4
4 2 4 2 4
4 2 5 2 4
4 3 1 3 4
4 3 2 3 4
4 3 3 3 4
4 3 4 3 4
4 3 5 3 4
4 4 1 4 4
4 4 2 4 4
4 4 3 4 4
4 4 4 4 4
4 4 5 4 4
4 5 1 5 4
4 5 2 5 4
4 5 3 5 4
4 5 4 5 4
4 5 5 5 4
5 1 1 1 5
5 1 2 1 5
5 1 3 1 5
5 1 4 1 5
5 1 5 1 5
5 2 1 2 5
5 2 2 2 5
5 2 3 2 5
5 2 4 2 5
5 2 5 2 5
5 3 1 3 5
5 3 2 3 5
5 3 3 3 5
5 3 4 3 5
5 3 5 3 5
5 4 1 4 5
5 4 2 4 5
5 4 3 4 5
5 4 4 4 5
5 4 5 4 5
5 5 1 5 5
5 5 2 5 5
5 5 3 5 5
5 5 4 5 5
5 5 5 5 5
``````
``````#  Python 3 program for
#  Generate all palindromic subsequence of n natural number
class Combination :
#  Display calculated result
def printResult(self, result, n) :
i = 0
while (i < n) :
print(" ", result[i], end = "")
i += 1

print("\n ", end = "")

def sequence(self, result, index, n) :
if (index == int(n / 2)) :
if ((n % 2) != 0) :
i = 1
#  Handles the request of
#  odd length palindrome sequence
while (i <= n) :
result[index] = i
self.printResult(result, n)
i += 1

else :
self.printResult(result, n)

elif (index > int(n / 2)) :
return
else :
i = 1
while (i <= n) :
#  Set the value of boundary element is to zero
result[index] = i
result[(n - 1) - index] = i
self.sequence(result, index + 1, n)
i += 1

def palindrome(self, n) :
if (n <= 0) :
return

print("\n Given Length : ", n,end ="\n " )
#  Auxiliary list which is collect result
result = [0] * (n)
self.sequence(result, 0, n)

def main() :
n = 4
#    n = 4
#    --------
#    1 1 1 1
#    1 2 2 1
#    1 3 3 1
#    1 4 4 1
#    2 1 1 2
#    2 2 2 2
#    2 3 3 2
#    2 4 4 2
#    3 1 1 3
#    3 2 2 3
#    3 3 3 3
#    3 4 4 3
#    4 1 1 4
#    4 2 2 4
#    4 3 3 4
#    4 4 4 4
#    --------
#  Test B
n = 5
#  n is 5

if __name__ == "__main__": main()``````

#### Output

`````` Given Length :  4
1  1  1  1
1  2  2  1
1  3  3  1
1  4  4  1
2  1  1  2
2  2  2  2
2  3  3  2
2  4  4  2
3  1  1  3
3  2  2  3
3  3  3  3
3  4  4  3
4  1  1  4
4  2  2  4
4  3  3  4
4  4  4  4

Given Length :  5
1  1  1  1  1
1  1  2  1  1
1  1  3  1  1
1  1  4  1  1
1  1  5  1  1
1  2  1  2  1
1  2  2  2  1
1  2  3  2  1
1  2  4  2  1
1  2  5  2  1
1  3  1  3  1
1  3  2  3  1
1  3  3  3  1
1  3  4  3  1
1  3  5  3  1
1  4  1  4  1
1  4  2  4  1
1  4  3  4  1
1  4  4  4  1
1  4  5  4  1
1  5  1  5  1
1  5  2  5  1
1  5  3  5  1
1  5  4  5  1
1  5  5  5  1
2  1  1  1  2
2  1  2  1  2
2  1  3  1  2
2  1  4  1  2
2  1  5  1  2
2  2  1  2  2
2  2  2  2  2
2  2  3  2  2
2  2  4  2  2
2  2  5  2  2
2  3  1  3  2
2  3  2  3  2
2  3  3  3  2
2  3  4  3  2
2  3  5  3  2
2  4  1  4  2
2  4  2  4  2
2  4  3  4  2
2  4  4  4  2
2  4  5  4  2
2  5  1  5  2
2  5  2  5  2
2  5  3  5  2
2  5  4  5  2
2  5  5  5  2
3  1  1  1  3
3  1  2  1  3
3  1  3  1  3
3  1  4  1  3
3  1  5  1  3
3  2  1  2  3
3  2  2  2  3
3  2  3  2  3
3  2  4  2  3
3  2  5  2  3
3  3  1  3  3
3  3  2  3  3
3  3  3  3  3
3  3  4  3  3
3  3  5  3  3
3  4  1  4  3
3  4  2  4  3
3  4  3  4  3
3  4  4  4  3
3  4  5  4  3
3  5  1  5  3
3  5  2  5  3
3  5  3  5  3
3  5  4  5  3
3  5  5  5  3
4  1  1  1  4
4  1  2  1  4
4  1  3  1  4
4  1  4  1  4
4  1  5  1  4
4  2  1  2  4
4  2  2  2  4
4  2  3  2  4
4  2  4  2  4
4  2  5  2  4
4  3  1  3  4
4  3  2  3  4
4  3  3  3  4
4  3  4  3  4
4  3  5  3  4
4  4  1  4  4
4  4  2  4  4
4  4  3  4  4
4  4  4  4  4
4  4  5  4  4
4  5  1  5  4
4  5  2  5  4
4  5  3  5  4
4  5  4  5  4
4  5  5  5  4
5  1  1  1  5
5  1  2  1  5
5  1  3  1  5
5  1  4  1  5
5  1  5  1  5
5  2  1  2  5
5  2  2  2  5
5  2  3  2  5
5  2  4  2  5
5  2  5  2  5
5  3  1  3  5
5  3  2  3  5
5  3  3  3  5
5  3  4  3  5
5  3  5  3  5
5  4  1  4  5
5  4  2  4  5
5  4  3  4  5
5  4  4  4  5
5  4  5  4  5
5  5  1  5  5
5  5  2  5  5
5  5  3  5  5
5  5  4  5  5
5  5  5  5  5
``````
``````#  Ruby program for
#  Generate all palindromic subsequence of n natural number
class Combination
#  Display calculated result
def printResult(result, n)
i = 0
while (i < n)
print(" ", result[i])
i += 1
end

print("\n ")
end

def sequence(result, index, n)
if (index == n / 2)
if ((n % 2) != 0)
i = 1
#  Handles the request of
#  odd length palindrome sequence
while (i <= n)
result[index] = i
self.printResult(result, n)
i += 1
end

else

self.printResult(result, n)
end

elsif (index > n / 2)
return
else

i = 1
while (i <= n)
#  Set the value of boundary element is to zero
result[index] = i
result[(n - 1) - index] = i
self.sequence(result, index + 1, n)
i += 1
end

end

end

def palindrome(n)
if (n <= 0)
return
end

print("\n Given Length : ", n ,"\n ")
#  Auxiliary array which is collect result
result = Array.new(n) {0}
self.sequence(result, 0, n)
end

end

def main()
n = 4
#    n = 4
#    --------
#    1 1 1 1
#    1 2 2 1
#    1 3 3 1
#    1 4 4 1
#    2 1 1 2
#    2 2 2 2
#    2 3 3 2
#    2 4 4 2
#    3 1 1 3
#    3 2 2 3
#    3 3 3 3
#    3 4 4 3
#    4 1 1 4
#    4 2 2 4
#    4 3 3 4
#    4 4 4 4
#    --------
#  Test B
n = 5
#  n is 5
end

main()``````

#### Output

`````` Given Length : 4
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4

Given Length : 5
1 1 1 1 1
1 1 2 1 1
1 1 3 1 1
1 1 4 1 1
1 1 5 1 1
1 2 1 2 1
1 2 2 2 1
1 2 3 2 1
1 2 4 2 1
1 2 5 2 1
1 3 1 3 1
1 3 2 3 1
1 3 3 3 1
1 3 4 3 1
1 3 5 3 1
1 4 1 4 1
1 4 2 4 1
1 4 3 4 1
1 4 4 4 1
1 4 5 4 1
1 5 1 5 1
1 5 2 5 1
1 5 3 5 1
1 5 4 5 1
1 5 5 5 1
2 1 1 1 2
2 1 2 1 2
2 1 3 1 2
2 1 4 1 2
2 1 5 1 2
2 2 1 2 2
2 2 2 2 2
2 2 3 2 2
2 2 4 2 2
2 2 5 2 2
2 3 1 3 2
2 3 2 3 2
2 3 3 3 2
2 3 4 3 2
2 3 5 3 2
2 4 1 4 2
2 4 2 4 2
2 4 3 4 2
2 4 4 4 2
2 4 5 4 2
2 5 1 5 2
2 5 2 5 2
2 5 3 5 2
2 5 4 5 2
2 5 5 5 2
3 1 1 1 3
3 1 2 1 3
3 1 3 1 3
3 1 4 1 3
3 1 5 1 3
3 2 1 2 3
3 2 2 2 3
3 2 3 2 3
3 2 4 2 3
3 2 5 2 3
3 3 1 3 3
3 3 2 3 3
3 3 3 3 3
3 3 4 3 3
3 3 5 3 3
3 4 1 4 3
3 4 2 4 3
3 4 3 4 3
3 4 4 4 3
3 4 5 4 3
3 5 1 5 3
3 5 2 5 3
3 5 3 5 3
3 5 4 5 3
3 5 5 5 3
4 1 1 1 4
4 1 2 1 4
4 1 3 1 4
4 1 4 1 4
4 1 5 1 4
4 2 1 2 4
4 2 2 2 4
4 2 3 2 4
4 2 4 2 4
4 2 5 2 4
4 3 1 3 4
4 3 2 3 4
4 3 3 3 4
4 3 4 3 4
4 3 5 3 4
4 4 1 4 4
4 4 2 4 4
4 4 3 4 4
4 4 4 4 4
4 4 5 4 4
4 5 1 5 4
4 5 2 5 4
4 5 3 5 4
4 5 4 5 4
4 5 5 5 4
5 1 1 1 5
5 1 2 1 5
5 1 3 1 5
5 1 4 1 5
5 1 5 1 5
5 2 1 2 5
5 2 2 2 5
5 2 3 2 5
5 2 4 2 5
5 2 5 2 5
5 3 1 3 5
5 3 2 3 5
5 3 3 3 5
5 3 4 3 5
5 3 5 3 5
5 4 1 4 5
5 4 2 4 5
5 4 3 4 5
5 4 4 4 5
5 4 5 4 5
5 5 1 5 5
5 5 2 5 5
5 5 3 5 5
5 5 4 5 5
5 5 5 5 5
``````
``````// Scala program for
// Generate all palindromic subsequence of n natural number
class Combination()
{
// Display calculated result
def printResult(result: Array[Int], n: Int): Unit = {
var i: Int = 0;
while (i < n)
{
print(" " + result(i));
i += 1;
}
print("\n ");
}
def sequence(result: Array[Int], index: Int, n: Int): Unit = {
if (index == n / 2)
{
if ((n % 2) != 0)
{
var i: Int = 1;
// Handles the request of
// odd length palindrome sequence
while (i <= n)
{
result(index) = i;
printResult(result, n);
i += 1;
}
}
else
{
printResult(result, n);
}
}
else if (index > n / 2)
{
return;
}
else
{
var i: Int = 1;
while (i <= n)
{
// Set the value of boundary element is to zero
result(index) = i;
result((n - 1) - index) = i;
sequence(result, index + 1, n);
i += 1;
}
}
}
def palindrome(n: Int): Unit = {
if (n <= 0)
{
return;
}
print("\n Given Length : " + n + "\n ");
// Auxiliary array which is collect result
var result: Array[Int] = Array.fill[Int](n)(0);
sequence(result, 0, n);
}
}
object Main
{
def main(args: Array[String]): Unit = {
var task: Combination = new Combination();
var n: Int = 4;
/*
n = 4
--------
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4
--------
*/
// Test B
n = 5;
// n is 5
}
}``````

#### Output

`````` Given Length : 4
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4

Given Length : 5
1 1 1 1 1
1 1 2 1 1
1 1 3 1 1
1 1 4 1 1
1 1 5 1 1
1 2 1 2 1
1 2 2 2 1
1 2 3 2 1
1 2 4 2 1
1 2 5 2 1
1 3 1 3 1
1 3 2 3 1
1 3 3 3 1
1 3 4 3 1
1 3 5 3 1
1 4 1 4 1
1 4 2 4 1
1 4 3 4 1
1 4 4 4 1
1 4 5 4 1
1 5 1 5 1
1 5 2 5 1
1 5 3 5 1
1 5 4 5 1
1 5 5 5 1
2 1 1 1 2
2 1 2 1 2
2 1 3 1 2
2 1 4 1 2
2 1 5 1 2
2 2 1 2 2
2 2 2 2 2
2 2 3 2 2
2 2 4 2 2
2 2 5 2 2
2 3 1 3 2
2 3 2 3 2
2 3 3 3 2
2 3 4 3 2
2 3 5 3 2
2 4 1 4 2
2 4 2 4 2
2 4 3 4 2
2 4 4 4 2
2 4 5 4 2
2 5 1 5 2
2 5 2 5 2
2 5 3 5 2
2 5 4 5 2
2 5 5 5 2
3 1 1 1 3
3 1 2 1 3
3 1 3 1 3
3 1 4 1 3
3 1 5 1 3
3 2 1 2 3
3 2 2 2 3
3 2 3 2 3
3 2 4 2 3
3 2 5 2 3
3 3 1 3 3
3 3 2 3 3
3 3 3 3 3
3 3 4 3 3
3 3 5 3 3
3 4 1 4 3
3 4 2 4 3
3 4 3 4 3
3 4 4 4 3
3 4 5 4 3
3 5 1 5 3
3 5 2 5 3
3 5 3 5 3
3 5 4 5 3
3 5 5 5 3
4 1 1 1 4
4 1 2 1 4
4 1 3 1 4
4 1 4 1 4
4 1 5 1 4
4 2 1 2 4
4 2 2 2 4
4 2 3 2 4
4 2 4 2 4
4 2 5 2 4
4 3 1 3 4
4 3 2 3 4
4 3 3 3 4
4 3 4 3 4
4 3 5 3 4
4 4 1 4 4
4 4 2 4 4
4 4 3 4 4
4 4 4 4 4
4 4 5 4 4
4 5 1 5 4
4 5 2 5 4
4 5 3 5 4
4 5 4 5 4
4 5 5 5 4
5 1 1 1 5
5 1 2 1 5
5 1 3 1 5
5 1 4 1 5
5 1 5 1 5
5 2 1 2 5
5 2 2 2 5
5 2 3 2 5
5 2 4 2 5
5 2 5 2 5
5 3 1 3 5
5 3 2 3 5
5 3 3 3 5
5 3 4 3 5
5 3 5 3 5
5 4 1 4 5
5 4 2 4 5
5 4 3 4 5
5 4 4 4 5
5 4 5 4 5
5 5 1 5 5
5 5 2 5 5
5 5 3 5 5
5 5 4 5 5
5 5 5 5 5
``````
``````// Swift 4 program for
// Generate all palindromic subsequence of n natural number
class Combination
{
// Display calculated result
func printResult(_ result: [Int], _ n: Int)
{
var i: Int = 0;
while (i < n)
{
print(" ", result[i], terminator: "");
i += 1;
}
print("\n ", terminator: "");
}
func sequence(_ result: inout[Int], _ index: Int, _ n: Int)
{
if (index == n / 2)
{
if ((n % 2)  != 0)
{
var i: Int = 1;
// Handles the request of
// odd length palindrome sequence
while (i <= n)
{
result[index] = i;
self.printResult(result, n);
i += 1;
}
}
else
{
self.printResult(result, n);
}
}
else if (index > n / 2)
{
return;
}
else
{
var i: Int = 1;
while (i <= n)
{
// Set the value of boundary element is to zero
result[index] = i;
result[(n - 1) - index] = i;
self.sequence(&result, index + 1, n);
i += 1;
}
}
}
func palindrome(_ n: Int)
{
if (n <= 0)
{
return;
}
print("\n Given Length : ", n ,"\n ", terminator: "");
// Auxiliary array which is collect result
var result: [Int] = Array(repeating: 0, count: n);
self.sequence(&result, 0, n);
}
}
func main()
{
var n: Int = 4;
/*
n = 4
--------
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4
--------
*/
// Test B
n = 5;
// n is 5
}
main();``````

#### Output

`````` Given Length :  4
1  1  1  1
1  2  2  1
1  3  3  1
1  4  4  1
2  1  1  2
2  2  2  2
2  3  3  2
2  4  4  2
3  1  1  3
3  2  2  3
3  3  3  3
3  4  4  3
4  1  1  4
4  2  2  4
4  3  3  4
4  4  4  4

Given Length :  5
1  1  1  1  1
1  1  2  1  1
1  1  3  1  1
1  1  4  1  1
1  1  5  1  1
1  2  1  2  1
1  2  2  2  1
1  2  3  2  1
1  2  4  2  1
1  2  5  2  1
1  3  1  3  1
1  3  2  3  1
1  3  3  3  1
1  3  4  3  1
1  3  5  3  1
1  4  1  4  1
1  4  2  4  1
1  4  3  4  1
1  4  4  4  1
1  4  5  4  1
1  5  1  5  1
1  5  2  5  1
1  5  3  5  1
1  5  4  5  1
1  5  5  5  1
2  1  1  1  2
2  1  2  1  2
2  1  3  1  2
2  1  4  1  2
2  1  5  1  2
2  2  1  2  2
2  2  2  2  2
2  2  3  2  2
2  2  4  2  2
2  2  5  2  2
2  3  1  3  2
2  3  2  3  2
2  3  3  3  2
2  3  4  3  2
2  3  5  3  2
2  4  1  4  2
2  4  2  4  2
2  4  3  4  2
2  4  4  4  2
2  4  5  4  2
2  5  1  5  2
2  5  2  5  2
2  5  3  5  2
2  5  4  5  2
2  5  5  5  2
3  1  1  1  3
3  1  2  1  3
3  1  3  1  3
3  1  4  1  3
3  1  5  1  3
3  2  1  2  3
3  2  2  2  3
3  2  3  2  3
3  2  4  2  3
3  2  5  2  3
3  3  1  3  3
3  3  2  3  3
3  3  3  3  3
3  3  4  3  3
3  3  5  3  3
3  4  1  4  3
3  4  2  4  3
3  4  3  4  3
3  4  4  4  3
3  4  5  4  3
3  5  1  5  3
3  5  2  5  3
3  5  3  5  3
3  5  4  5  3
3  5  5  5  3
4  1  1  1  4
4  1  2  1  4
4  1  3  1  4
4  1  4  1  4
4  1  5  1  4
4  2  1  2  4
4  2  2  2  4
4  2  3  2  4
4  2  4  2  4
4  2  5  2  4
4  3  1  3  4
4  3  2  3  4
4  3  3  3  4
4  3  4  3  4
4  3  5  3  4
4  4  1  4  4
4  4  2  4  4
4  4  3  4  4
4  4  4  4  4
4  4  5  4  4
4  5  1  5  4
4  5  2  5  4
4  5  3  5  4
4  5  4  5  4
4  5  5  5  4
5  1  1  1  5
5  1  2  1  5
5  1  3  1  5
5  1  4  1  5
5  1  5  1  5
5  2  1  2  5
5  2  2  2  5
5  2  3  2  5
5  2  4  2  5
5  2  5  2  5
5  3  1  3  5
5  3  2  3  5
5  3  3  3  5
5  3  4  3  5
5  3  5  3  5
5  4  1  4  5
5  4  2  4  5
5  4  3  4  5
5  4  4  4  5
5  4  5  4  5
5  5  1  5  5
5  5  2  5  5
5  5  3  5  5
5  5  4  5  5
5  5  5  5  5
``````
``````// Kotlin program for
// Generate all palindromic subsequence of n natural number
class Combination
{
// Display calculated result
fun printResult(result: Array < Int > , n: Int): Unit
{
var i: Int = 0;
while (i < n)
{
print(" " + result[i]);
i += 1;
}
print("\n ");
}
fun sequence(result: Array < Int > , index: Int, n: Int): Unit
{
if (index == n / 2)
{
if ((n % 2) != 0)
{
var i: Int = 1;
// Handles the request of
// odd length palindrome sequence
while (i <= n)
{
result[index] = i;
this.printResult(result, n);
i += 1;
}
}
else
{
this.printResult(result, n);
}
}
else if (index > n / 2)
{
return;
}
else
{
var i: Int = 1;
while (i <= n)
{
// Set the value of boundary element is to zero
result[index] = i;
result[(n - 1) - index] = i;
this.sequence(result, index + 1, n);
i += 1;
}
}
}
fun palindrome(n: Int): Unit
{
if (n <= 0)
{
return;
}
print("\n Given Length : " + n + "\n ");
// Auxiliary array which is collect result
var result: Array < Int > = Array(n)
{
0
};
this.sequence(result, 0, n);
}
}
fun main(args: Array < String > ): Unit
{
var n: Int = 4;
/*
n = 4
--------
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4
--------
*/
// Test B
n = 5;
// n is 5
}``````

#### Output

`````` Given Length : 4
1 1 1 1
1 2 2 1
1 3 3 1
1 4 4 1
2 1 1 2
2 2 2 2
2 3 3 2
2 4 4 2
3 1 1 3
3 2 2 3
3 3 3 3
3 4 4 3
4 1 1 4
4 2 2 4
4 3 3 4
4 4 4 4

Given Length : 5
1 1 1 1 1
1 1 2 1 1
1 1 3 1 1
1 1 4 1 1
1 1 5 1 1
1 2 1 2 1
1 2 2 2 1
1 2 3 2 1
1 2 4 2 1
1 2 5 2 1
1 3 1 3 1
1 3 2 3 1
1 3 3 3 1
1 3 4 3 1
1 3 5 3 1
1 4 1 4 1
1 4 2 4 1
1 4 3 4 1
1 4 4 4 1
1 4 5 4 1
1 5 1 5 1
1 5 2 5 1
1 5 3 5 1
1 5 4 5 1
1 5 5 5 1
2 1 1 1 2
2 1 2 1 2
2 1 3 1 2
2 1 4 1 2
2 1 5 1 2
2 2 1 2 2
2 2 2 2 2
2 2 3 2 2
2 2 4 2 2
2 2 5 2 2
2 3 1 3 2
2 3 2 3 2
2 3 3 3 2
2 3 4 3 2
2 3 5 3 2
2 4 1 4 2
2 4 2 4 2
2 4 3 4 2
2 4 4 4 2
2 4 5 4 2
2 5 1 5 2
2 5 2 5 2
2 5 3 5 2
2 5 4 5 2
2 5 5 5 2
3 1 1 1 3
3 1 2 1 3
3 1 3 1 3
3 1 4 1 3
3 1 5 1 3
3 2 1 2 3
3 2 2 2 3
3 2 3 2 3
3 2 4 2 3
3 2 5 2 3
3 3 1 3 3
3 3 2 3 3
3 3 3 3 3
3 3 4 3 3
3 3 5 3 3
3 4 1 4 3
3 4 2 4 3
3 4 3 4 3
3 4 4 4 3
3 4 5 4 3
3 5 1 5 3
3 5 2 5 3
3 5 3 5 3
3 5 4 5 3
3 5 5 5 3
4 1 1 1 4
4 1 2 1 4
4 1 3 1 4
4 1 4 1 4
4 1 5 1 4
4 2 1 2 4
4 2 2 2 4
4 2 3 2 4
4 2 4 2 4
4 2 5 2 4
4 3 1 3 4
4 3 2 3 4
4 3 3 3 4
4 3 4 3 4
4 3 5 3 4
4 4 1 4 4
4 4 2 4 4
4 4 3 4 4
4 4 4 4 4
4 4 5 4 4
4 5 1 5 4
4 5 2 5 4
4 5 3 5 4
4 5 4 5 4
4 5 5 5 4
5 1 1 1 5
5 1 2 1 5
5 1 3 1 5
5 1 4 1 5
5 1 5 1 5
5 2 1 2 5
5 2 2 2 5
5 2 3 2 5
5 2 4 2 5
5 2 5 2 5
5 3 1 3 5
5 3 2 3 5
5 3 3 3 5
5 3 4 3 5
5 3 5 3 5
5 4 1 4 5
5 4 2 4 5
5 4 3 4 5
5 4 4 4 5
5 4 5 4 5
5 5 1 5 5
5 5 2 5 5
5 5 3 5 5
5 5 4 5 5
5 5 5 5 5
``````

## Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.