वस्तुओं की संख्या का क्रमपरिवर्तन इस बात का प्रतिनिधित्व करता है कि अपडेट्स को विभिन्न अनुक्रमों में कैसे प्रस्तुत किया जा सकता है। लेकिन कभी-कभी दी गई वस्तुओं की श्रृंखला में दो वस्तुएं समान हो सकती हैं। उस स्थिति में दो अनुक्रम समान हो जाएंगे। इस लेख में हम देखेंगे कि दी गई वस्तुओं की सूची से केवल अद्वितीय अनुक्रमों को कैसे प्रस्तुत किया जाए।
itertools मॉड्यूल में permutations नामक एक विधि होती है जो इसे प्राप्त करने में हमारी मदद करती है। अद्वितीय क्रमपरिवर्तन प्राप्त करने के लिए हम set मेथड की मदद लेते हैं जो केवल विशिष्ट एलिमेंट्स को स्टोर करता है। लेकिन उससे पहले हम sorted मेथड का उपयोग करके एलिमेंट्स को सॉर्टेड क्रम में प्राप्त करते हैं।
नीचे दिए गए प्रोग्राम में K संपूर्ण संभावित अद्वितीय क्रमपरिवर्तनों में से हमारे द्वारा प्रदर्शित किए जाने वाले अद्वितीय एलिमेंट्स की अधिकतम संख्या है। एक while लूप का उपयोग करके हम अद्वितीय एलिमेंट को अंतिम सूची में जोड़ते रहते हैं जिसे हम प्रदर्शित करना चाहते हैं, केवल तभी जब वह पहले से सेट में न जोड़ा गया हो।
उदाहरण
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