# Python: Find a palindrome of a given length containing a given string

## Python Programming Puzzles: Exercise-95 with Solution

Write a Python program to generate a palindrome of a given length from a string.

Input: madam , 7 Output: madaadam Input: madam , 6 Output: maddam Input: madam , 5 Output: maaaam Input: madam , 3 Output: maam Input: madam , 2 Output: mm Input: madam , 1 Output: aa

**Sample Solution:**

**Python Code:**

```
# License: https://bit.ly/3oLErEI
# Function to generate a palindrome of a given length from a string
def test(s, length):
s_index = 0
# Calculate the half length of the palindrome
length_half = (length - (length % 2)) // 2
ans = ""
# Build the first half of the palindrome
while len(ans) < length_half:
ans += s[s_index % len(s)]
s_index += 1
# Add a middle character if the length is odd
if length % 2 == 1:
ans += "a"
# Complete the palindrome by adding the reversed first half
return ans + ans[::-1]
# Test cases with different string and palindrome lengths
s = 'madam'
length = 7
print("String and length of the palindrome:", s, ",", length)
print("Palindrome of the said string and length:")
print(test(s, length))
s = 'madam'
length = 6
print("\nString and length of the palindrome:", s, ",", length)
print("Palindrome of the said string and length:")
print(test(s, length))
length = 5
print("\nString and length of the palindrome:", s, ",", length)
print("Palindrome of the said string and length:")
print(test(s, length))
length = 3
print("\nString and length of the palindrome:", s, ",", length)
print("Palindrome of the said string and length:")
print(test(s, length))
length = 2
print("\nString and length of the palindrome:", s, ",", length)
print("Palindrome of the said string and length:")
print(test(s, length))
length = 1
print("\nString and length of the palindrome:", s, ",", length)
print("Palindrome of the said string and length:")
print(test(s, length))
```

Sample Output:

String and length of the palindrome: madam , 7 Palindrome of the said string and length: madaadam String and length of the palindrome: madam , 6 Palindrome of the said string and length: maddam String and length of the palindrome: madam , 5 Palindrome of the said string and length: maaaam String and length of the palindrome: madam , 3 Palindrome of the said string and length: maam String and length of the palindrome: madam , 2 Palindrome of the said string and length: mm String and length of the palindrome: madam , 1 Palindrome of the said string and length: aa

**Flowchart:**

**Python Code Editor :**

**Have another way to solve this solution? Contribute your code (and comments) through Disqus.**

**Previous:** Separate parentheses groups.

**Next:** Single digits in numbers sorted backwards and converted to English words.

**What is the difficulty level of this exercise?**

Test your Programming skills with w3resource's quiz.

**Weekly Trends and Language Statistics**- Weekly Trends and Language Statistics