রিকারশন ব্যবহার করে লেক্সিকোগ্রাফিক ক্রমে একটি স্ট্রিং এর সমস্ত পারমুটেশন মুদ্রণ করার প্রয়োজন হলে, একটি পদ্ধতি সংজ্ঞায়িত করা হয়, যেটি উপাদানগুলির অনুক্রমের উপর পুনরাবৃত্তি করার জন্য 'for' লুপ ব্যবহার করে এবং উপাদানগুলির সাথে যোগ দিতে 'যোগদান' পদ্ধতি ব্যবহার করে।
নীচে একই −
এর প্রদর্শন করা হলউদাহরণ
from math import factorial
def lexicographic_permutation_order(s):
my_sequence = list(s)
for _ in range(factorial(len(my_sequence))):
print(''.join(my_sequence))
next = next_in_permutation(my_sequence)
if next is None:
my_sequence.reverse()
else:
my_sequence = next
def next_in_permutation(my_sequence):
if len(my_sequence) == 0:
return None
next = next_in_permutation(my_sequence[1:])
if next is None:
my_sequence[1:] = reversed(my_sequence[1:])
q = 1
while q < len(my_sequence) and my_sequence[0] > my_sequence[q]:
q += 1
if q == len(my_sequence):
return None
my_sequence[0], my_sequence[q] = my_sequence[q], my_sequence[0]
return my_sequence
else:
return [my_sequence[0]] + next
my_input = input('Enter a string : ')
print("The string is :")
print(my_input)
print("The method is being called...")
lexicographic_permutation_order(my_input) আউটপুট
Enter a string : hey The string is : hey The method is being called... hey hye yeh yhe hey hye
ব্যাখ্যা
-
প্রয়োজনীয় প্যাকেজগুলি আমদানি করা হয়৷
-
'লেক্সিকোগ্রাফিক_পারমিউটেশন_অর্ডার' নামের একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে যা উপাদানগুলির অভিধানিক ক্রম খুঁজে পেতে সাহায্য করে।
-
'next_in_permutation' পদ্ধতিটি স্ট্রিং-এর পরবর্তী পারমুটেশন নির্ধারণ করতে সাহায্য করে।
-
ব্যবহারকারীর দ্বারা একটি স্ট্রিং প্রবেশ করানো হয় এবং কনসোলে প্রদর্শিত হয়৷
৷ -
এই স্ট্রিংটিকে প্যারামিটার হিসাবে পাস করে পদ্ধতিটিকে বলা হয়।
-
আউটপুট কনসোলে প্রদর্শিত হয়।