कई वस्तुओं का क्रमपरिवर्तन इस बात का प्रतिनिधित्व है कि विभिन्न अनुक्रमों में अद्यतन कैसे मौजूद हो सकते हैं। लेकिन कभी-कभी हमारे पास दी गई वस्तुओं की एक श्रृंखला में दो वस्तुएं हो सकती हैं जो समान होती हैं। उस स्थिति में दो क्रम बराबर हो जाएंगे। इस लेख में देखेंगे कि वस्तुओं की दी गई सूची से केवल अद्वितीय अनुक्रमों का प्रतिनिधित्व कैसे किया जाता है।
मॉड्यूल itertools में क्रमपरिवर्तन नामक एक विधि है जो हमें इसे प्राप्त करने में मदद करती है। अद्वितीय क्रमपरिवर्तन प्राप्त करने के लिए हम सेट विधि की मदद लेते हैं जो केवल विशिष्ट तत्वों को संग्रहीत करती है। लेकिन इससे पहले हम क्रमबद्ध तरीके से तत्वों को क्रमबद्ध तरीके से प्राप्त करते हैं।
नीचे दिए गए कार्यक्रम में K अधिकतम अद्वितीय तत्वों की संख्या है जिन्हें हम संपूर्ण संभावित अद्वितीय क्रमपरिवर्तनों में से प्रदर्शित करना चाहते हैं। थोड़ी देर के लूप का उपयोग करके हम अद्वितीय तत्व को अंतिम सूची में जोड़ते रहते हैं जिसे हम केवल तभी प्रदर्शित करना चाहते हैं जब यह पहले से ही नहीं जोड़ा गया हो सेट।
उदाहरण
from itertools import permutations def permutation_value(str, k): s = sorted(list(str)) p = permutations(s) m = 0 set_1 = set() str = '' while m < k: str = ''.join(p.__next__()) if str not in set_1: set_1.add(str) print(str) m += 1 str = "xyxxz" i = 12 permutation_value(str, i)
आउटपुट
उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -
xxxyz xxxzy xxyxz xxyzx xxzxy xxzyx xyxxz xyxzx xyzxx xzxxy xzxyx xzyxx