ধরুন আমাদের একটি স্ট্রিং s এবং একটি সংখ্যা r আছে। আমাদের s অক্ষরের r সংখ্যার সমস্ত পারমুটেশন প্রদর্শন করতে হবে। সব পারমুটেশন পেতে আমাদের পারমুটেশন() ফাংশন আছে। এই ফাংশনটি itertools লাইব্রেরির ভিতরে উপস্থিত রয়েছে৷
সুতরাং, যদি ইনপুট s ="HELLO" r =3 এর মত হয়, তাহলে আউটপুট হবে
>['HEL', 'HEL', 'HEO', 'HLE', 'HLL', 'HLO', 'HLE', 'HLL', 'HLO', 'HOE', 'HOL', 'HOL', 'EHL', 'EHL', 'EHO', 'ELH', 'ELL', 'ELO', 'ELH', 'ELL','ELO', 'EOH', 'EOL', 'EOL', 'LHE', 'LHL', 'LHO', 'LEH', 'LEL', 'LEO', 'LLH', 'LLE', 'LLO', 'LOH', 'LOE', 'LOL', 'LHE', 'LHL', 'LHO', 'LEH', 'LEL', 'LEO', 'LLH', 'LLE', 'LLO', 'LOH', 'LOE', 'LOL', 'OHE', 'OHL', 'OHL', 'OEH', 'OEL', 'OEL', 'OLH', 'OLE', 'OLL', 'OLH', 'OLE', 'OLL']
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- vals:=s থেকে r আকারের সমস্ত পারমুটেশন সহ একটি তালিকা
- res:=একটি নতুন তালিকা
- ভ্যালে প্রতিটি x এর জন্য, করুন
- অক্ষরের তালিকা x স্ট্রিং-এ রূপান্তর করুন এবং res-এ সন্নিবেশ করুন
- রিটার্ন রিটার্ন
উদাহরণ
আসুন আরও ভালভাবে বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখি
from itertools import permutations def solve(s, r): vals=list(permutations(s,r)) res=[] for x in vals: res.append(''.join(x)) return res s = "HELLO" r = 3 print(solve(s, r))
ইনপুট
"HELLO", 2
আউটপুট
['HEL', 'HEL', 'HEO', 'HLE', 'HLL', 'HLO', 'HLE', 'HLL', 'HLO', 'HOE', 'HOL', 'HOL', 'EHL', 'EHL', 'EHO', 'ELH', 'ELL', 'ELO', 'ELH', 'ELL', 'ELO', 'EOH', 'EOL', 'EOL', 'LHE', 'LHL', 'LHO', 'LEH', 'LEL', 'LEO', 'LLH', 'LLE', 'LLO', 'LOH', 'LOE', 'LOL', 'LHE', 'LHL', 'LHO', 'LEH', 'LEL', 'LEO', 'LLH', 'LLE', 'LLO', 'LOH', 'LOE', 'LOL', 'OHE', 'OHL', 'OHL', 'OEH', 'OEL', 'OEL', 'OLH', 'OLE', 'OLL', 'OLH', 'OLE', 'OLL']