जब दिए गए वर्ण की वर्ण पुनरावृत्ति प्राप्त करनी हो, तो एक मेथड परिभाषित की जाती है जो इंडेक्स मान का उपयोग करके पुनरावृत्ति प्रिंट करती है।
उदाहरण
नीचे इसका प्रदर्शन है
def to_string(my_list):
return ''.join(my_list)
def lex_recurrence(my_string, my_data, last_val, index_val):
length = len(my_string)
for i in range(length):
my_data[index_val] = my_string[i]
if index_val == last_val:
print(to_string(my_data))
else:
lex_recurrence(my_string, my_data, last_val, index_val+1)
def all_lex(my_string):
length = len(my_string)
my_data = [""] * (length+1)
my_string = sorted(my_string)
lex_recurrence(my_string, my_data, length-1, 0)
my_string = "MQ"
print("The string is :")
print(my_string)
print("All permutations with repetition of " + my_string + " are...")
all_lex(my_string)
आउटपुट
The string is : MQ All permutations with repetition of MQ are... MM MQ QM QQ
व्याख्या
'to_string' नामक एक मेथड परिभाषित की जाती है जो पैरामीटर के रूप में एक लिस्ट लेती है और सभी मानों को जोड़कर वापस करती है।
'lex_recurrence' नामक एक और मेथड परिभाषित की जाती है जो एक स्ट्रिंग, इंडेक्स मान पैरामीटर के रूप में लेती है।
यह स्ट्रिंग की लंबाई पर इटरेट करती है, और जांचती है कि अंतिम मान और इंडेक्स मान समान हैं या नहीं।
यदि वे हैं, तो इसे संयोजनों में से एक के रूप में प्रिंट किया जाता है।
अन्यथा, इंडेक्स के मान को बढ़ाकर मेथड को फिर से कॉल किया जाता है।
'all_lex' नामक एक और मेथड परिभाषित की जाती है जो 'sorted' मेथड का उपयोग करके स्ट्रिंग को क्रमबद्ध करती है और पिछली मेथड को फिर से कॉल करती है।
मेथड के बाहर, एक स्ट्रिंग परिभाषित की जाती है और कंसोल पर प्रदर्शित की जाती है।
आउटपुट कंसोल पर प्रदर्शित होता है।