Returning all possible English dictionary words that can be formed out of a string
As a general advice, you may want to organize your code into functions - say


One function to receive user input and process it
One function to generate all possible permutations for a string passed in less than a value (here 3).
Another function to filter this based on whether the string passed in is in us or uk dictionaries
At the end, you can combine these as a list comprehension.


Regarding your problem of performance, time the program with the itertools permutation output alone (without dict checking). My guess would be that the permutations is taking the time, but it would be nice to verify. 

You may also want to check where the valid words are getting filtered. (Since you say that not all the words are being output). My guess is that permutation produces them but is not present in the enchant dictionary. But please verify.
Here is a possible rewriting of your code. It removes the redundant sorts

import enchant
import itertools

MIN_LEN = 3
uk = enchant.Dict("en_UK")
us = enchant.Dict("en_US")

def get_input():
  return sorted(set(input('enter the word: ').rstrip('\r\n')))

def gen_permutations(ent):
  tuples = map(lambda i: itertools.permutations(ent,i), range(MIN_LEN,len(ent)+1))
  arrr= [["".join(j) for j in i] for i in tuples]
  return list(itertools.chain(*arrr))

def filter_dict(words):
  return [x for x in words if uk.check(x) or us.check(x)]

for i in filter_dict(gen_permutations(get_input())):
  print i