human
I found an interesting problem on https://leetcode.com/problems/reordered-power-of-2/:
Starting with a positive integer N, we reorder the digits in any order (including the original order) such that the leading digit is not zero.
Return true if and only if we can do this in a way such that the resulting number is a power of 2.
 


Example 1:
Input: 1
Output: true

Example 2:
Input: 10
Output: false

Example 3:
Input: 16
Output: true

Example 4:
Input: 24
Output: false

Example 5:
Input: 46
Output: true

 
Note:

1 <= N <= 10^9

I tried it in Python, but could not do it. Can you solve it?

Give me a the Python code you requested?
assistant
#Here is the Python code you requested.

class Solution:
    def reorderedPowerOf2(self, N: int) -> bool:
        maxn = 10 ** 9
        twopower = 1
        twosets = set()
        while twopower <= maxn:
            twosets.add(twopower)
            twopower *= 2
        permutations = self.get_all_permutation(N)
        for p in permutations:
            if p[0] != '0' and int(p) in twosets:
                return True
        return False

    def get_all_permutation(self, num):
        perm = {''}
        for n in str(num):
            perm = {p[:i] + n + p[i:] for p in perm  for i in range(len(p) + 1)}
        return perm